首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 開發 Windows Service 程序(上):ListView 分組設計與表單初始化

     編輯:關於C語言

ListView 分組設計器

在 VS.NET 表單設計器中,選取 ListView 控制項的 Groups 屬性即可開啟分組編輯器,視覺化設定分組標題與名稱。

表單載入初始化

檢查服務安裝狀態,設定介面元件啟用狀態:

private bool bolServiceInstalled = false;

private void frmViewLog_Load(object sender, EventArgs e) {
    try {
        ServiceController ctrl = new ServiceController("MyFileSystemWatcher");
        var status = ctrl.Status;
        ctrl.Dispose();
        bolServiceInstalled = true;
    } catch (Exception ex) {
        lblServiceInstall.Text = "服務尚未安裝";
        myTimer.Enabled = false;
        btnStartService.Enabled = false;
        btnStopService.Enabled = false;
        bolServiceInstalled = false;
        MessageBox.Show(this, "服務尚未安裝:" + ex.Message, "系統錯誤");
    }
    btnRefresh_Click(null, null);
}

重新整理按鈕完整實作

查詢資料庫、建立 ListViewItem、依事件類型設定分組與圖示:

private void btnRefresh_Click(object sender, EventArgs e) {
    this.Cursor = Cursors.WaitCursor;
    lvwRecord.BeginUpdate();
    try {
        lvwRecord.Items.Clear();
        using (IDbCommand cmd = Util.DBConnection.CreateCommand()) {
            cmd.CommandText = "SELECT RecordID, ObjectName, WatchTime, EventStyle FROM FileSystemLog ORDER BY WatchTime";
            using (IDataReader reader = cmd.ExecuteReader()) {
                while (reader.Read()) {
                    ListViewItem item = new ListViewItem();
                    item.Tag = reader.GetValue(0).ToString();
                    item.Text = reader.GetValue(1).ToString();
                    item.SubItems.Add(reader.GetValue(2).ToString());
                    string style = reader.GetValue(3).ToString().Trim().ToLower();
                    item.SubItems.Add(style);

                    switch (style) {
                        case "created": item.Group = lvwRecord.Groups[0]; item.ImageIndex = 0; break;
                        case "changed": item.Group = lvwRecord.Groups[1]; item.ImageIndex = 1; break;
                        case "deleted": item.Group = lvwRecord.Groups[2]; item.ImageIndex = 2; break;
                        case "renamed": item.Group = lvwRecord.Groups[3]; item.ImageIndex = 3; break;
                    }
                    item.StateImageIndex = item.ImageIndex;
                    lvwRecord.Items.Add(item);
                }
            }
        }
        myStatus.Text = $"共列出 {lvwRecord.Items.Count} 個記錄";
    } catch (Exception ex) {
        MessageBox.Show(ex.ToString(), "系統錯誤");
    } finally {
        this.Cursor = Cursors.Default;
        lvwRecord.EndUpdate();
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved