整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          WinForms 中的 CheckBox 控件使用指南

          WinForms中,CheckBox 控件是一個允許用戶選擇或取消選擇的單選按鈕。它通常用于表示布爾值(真/假)或允許多選的情況。以下是如何使用 CheckBox 控件的一些基本信息和示例代碼。

          創建和設置 CheckBox 控件

          1. 添加 CheckBox 控件:在 Visual Studio 的工具箱中找到 CheckBox 控件,并將其拖放到窗體上。
          2. 設置 CheckBox 屬性:您可以設置 CheckBox 的 Text 屬性來指定顯示的文字,以及 Checked 屬性來指定默認的選中狀態。

          事件處理

          • CheckedChanged 事件:當 CheckBox 的選中狀態發生變化時,會觸發 CheckedChanged 事件。

          示例代碼

          以下是一個簡單的示例,演示如何創建一個 CheckBox 控件,并處理其 CheckedChanged 事件:

          public partial class MainForm : Form
          {
              public MainForm()
              {
                  InitializeComponent();
          
                  // 創建 CheckBox 實例
                  CheckBox checkBox1 = new CheckBox();
          
                  // 設置 CheckBox 的一些屬性
                  checkBox1.Location = new Point(10, 10);
                  checkBox1.Size = new Size(100, 20);
                  checkBox1.Text = "我同意條款和條件";
          
                  // 將 CheckBox 添加到窗體的控件集合中
                  this.Controls.Add(checkBox1);
          
                  // 為 CheckBox 添加 CheckedChanged 事件處理程序
                  checkBox1.CheckedChanged += new EventHandler(checkBox1_CheckedChanged);
              }
          
              private void checkBox1_CheckedChanged(object sender, EventArgs e)
              {
                  // 獲取 CheckBox 的引用
                  CheckBox checkBox = sender as CheckBox;
          
                  // 在這里執行當選中狀態改變時的操作,例如啟用或禁用其他控件
                  if (checkBox.Checked)
                  {
                      labelStatus.Text = "已選中";
                  }
                  else
                  {
                      labelStatus.Text = "未選中";
                  }
              }
          }
          

          在這個示例中,我們創建了一個 CheckBox 實例,并設置了其位置、大小和顯示的文字。然后,我們將 CheckBox 添加到窗體的控件集合中,并為其添加了 CheckedChanged 事件處理程序。在事件處理程序中,我們根據 CheckBox 的選中狀態更新了一個 Label 控件的文本,以反映當前的選中狀態。

          通過這些基本步驟,您可以在 WinForms 應用程序中使用 CheckBox 控件來收集用戶的布爾輸入,或者在用戶界面中提供可切換的選項。


          使用 CheckBox 為用戶提供一個選項,例如 true/false 或 yes/no。 控件 CheckBox 可以顯示圖像或文本或兩者。

          CheckBox 控件 RadioButton 具有類似的功能:允許用戶從選項列表中選擇。 CheckBox 控件允許用戶選取選項的組合。 相比之下, RadioButton 控件允許用戶從互斥選項中進行選擇。

          正文


          常用屬性


          Checked

          獲取或設置一個值,該值指示 CheckBox 是否處于選中狀態。

          CheckState

          獲取或設置 CheckBox 的狀態。

          ThreeState

          獲取或設置一個值,該值指示此 CheckBox 是否允許三種復選狀態而不是兩種。

          Tag

          獲取或設置包含有關控件的數據的對象。

          Text

          獲取或設置與此控件關聯的文本。

          常用事件


          CheckedChanged

          當 Checked 屬性的值更改時發生。

          CheckStateChanged

          當 CheckState 屬性的值更改時發生。

          我們做一個checkbox的權限設置界面

          設置權限按鈕設置名稱:btnSet

          代碼

          private void btnSet_Click(object sender, EventArgs e)
          {
              StringBuilder sb = new StringBuilder();
              
              if (checkBox1.Checked)
              {
                  sb.Append("基本信息管理;");
              }
              if (checkBox2.Checked)
              {
                  sb.Append("庫存管理;");
              }
              if (checkBox3.Checked)
              {
                  sb.Append("權限管理;");
              }
              if (checkBox4.Checked)
              {
                  sb.Append("設備管理;");
              }
              if (checkBox5.Checked)
              {
                  sb.Append("質量管理;");
              }
              MessageBox.Show(sb.ToString());
          }

          我們改進一下,通過編譯窗體中的checkbox完成判斷

          StringBuilder sb = new StringBuilder();
          foreach (var item in this.Controls)
          {
              if (item.GetType()==typeof(CheckBox))
              {
                  if (((CheckBox)(item)).Checked)
                  {
                      sb.Append(((CheckBox)(item)).Text+";");
                  }
              }
          }
          MessageBox.Show(sb.ToString());

          我們添加全選或全取消功能

          private void btnSelectAll_Click(object sender, EventArgs e)
          {
              foreach (var item in this.Controls)
              {
                  if (item.GetType() == typeof(CheckBox))
                  {
                      ((CheckBox)(item)).Checked = true;
                  }
              }
          }
          
          private void btnUnSelectAll_Click(object sender, EventArgs e)
          {
              foreach (var item in this.Controls)
              {
                  if (item.GetType() == typeof(CheckBox))
                  {
                      ((CheckBox)(item)).Checked = false;
                  }
              }
          }

          Checkbox有一個三態的狀態

          CheckState



          Checked

          1

          該控件處于選中狀態。

          Indeterminate

          2

          該控件處于不確定狀態。 一個不確定的控件通常具有灰色的外觀。

          Unchecked

          0

          該控件處于未選中狀態。

          Indeterminate 不確定狀態

          時候在Win Form開發過程中,窗口顯示的控件如單選、復選框等,需要根據數據庫讀取數據的結果動態生成指定數量的控件。因此涉及到動態生成指定數量的控件,并定義生成控件的事件等。本文主要以CheckBox為例對動態控件添加進行說明,為C#初學者提供參考與借鑒。首選給出本案例需求窗口:

          案例Form


          本例所用Form窗口如上圖所示,問題:要求在生成chart圖表時,根據統計結果即柱狀圖的數量,動態生成右側CheckBox,并實現初始狀態全部CheckBox為選中狀態,改變選中數量時左側圖標自動顯示對應柱狀圖。

          解決問題思路:

          (1)獲取查詢記錄集的數量(要生成多少個CheckBox實例對象)

          int cnt=ds.Tables[0].Rows.Count;//ds存儲查詢結果,查詢過程略,cnt即為記錄集條數
          

          (2)對通過new 實例化的CheckBox如何存儲?(本例需要生成三個checkbox)

          C#中本身不提供長度未知的動態數組,因此不能直接使用數組對實例化后對象進行存儲,本例設計使用ArrayList實現長度未知動態數組功能。

          al = new ArrayList();//al是本例定義的變量,在load中進行初始化,初始化成功之后可存儲checkbox;
          

          (3) 循環創建CheckBox實例

          for(int m=0;m<cnt;m++)
          {
           ...
           CheckBox temp= new CheckBox();//temp為實例化CheckBox
           temp.AutoSize = true;
           temp.Location = new System.Drawing.Point(24, y);//繪圖位置計算x坐標,Y坐標
           temp.Name = "checkBox"+(m+1).ToString();
           temp.Size = new System.Drawing.Size(59, 20);//checkbox繪制大小
           temp.Text = ds.Tables[0].Rows[m].ItemArray[0].ToString();
           ...
           temp.Checked = true;//初始化為選中狀態
           temp.Click += new System.EventHandler(Check_Click);//綁定事件處理函數
           this.panel1.Controls.Add(temp);
          }
          

          在創建checkbox實例的同時,由于控件是動態創建的,因此需要手動定義消息處理,實現checkbox的點擊事件。所有的checkbox都響應check_Click事件:

           temp.Click += new System.EventHandler(Check_Click);//綁定事件處理函數
          

          (4) check_Click事件編寫

          該事件主要遍歷所有動態生成的checkbox獲取其狀態構造查詢語句,實現對記錄集ds數據進行篩選。由于所有checkbox都響應該事件,因此需要object sender參數接收被點擊的控件,通過arraylist al表示全部的checkbox,并以此為基礎進行操作。

          private void Check_Click(object sender, EventArgs e)
           {
           CheckBox ck = (CheckBox)sender;//接收當前點擊checkbox
           for(int m = 0; m < al.Count; m++)
           {
           CheckBox cbk = (CheckBox)al[m];
           if (cbk.Checked)
           {
           //循環遍歷checkbox,獲取每一個checkbox狀態,構造查詢語句條件
           }
           }
          }
          

          以上完成了動態checkbox的創建及消息響應設置,可以進一步實現根據checkbox選擇顯示Chart不同內容了。主要實現代碼如下:

          chart1.Update();// 使區域無效
          chart1.DataSource = ds.Tables[0].Select(str);//對ds記錄集進行篩選。str參數在checkbox響應函數中定義;
          

          至此本案例全部功能可以得到實現,最終實現效果如本文開頭部分給出的運行效果截圖。近期本頭條號重點對C# Win Form編程基礎知識進行說明。往期文章請點擊鏈接閱讀:

          1. Win Form登錄框本地記住密碼功能實現
          2. C# Win Form 編程實現圖片的數據庫存儲
          3. C# Win Form 實現XML文件讀寫
          4. C# Win Form 讀取CSV文件數據

          本頭條號長期關注于青少年編程資訊分享;編程課程、素材、代碼分享及青少年編程培訓。如果您對以上方面有興趣,可關注該頭條號,如有編程學習問題可以聯系作者,共同探討。


          主站蜘蛛池模板: 一本一道波多野结衣一区| 久久毛片一区二区| 一区二区传媒有限公司| 任你躁国产自任一区二区三区| 久久一区二区三区免费播放| 亚洲AⅤ视频一区二区三区| 亚洲欧美日韩一区二区三区| 国产乱码精品一区二区三区麻豆| 精品一区二区三区四区在线播放 | 小泽玛丽无码视频一区| 国产拳头交一区二区| 国产激情无码一区二区| 成人精品一区二区三区校园激情| 国产精品一区视频| 91在线一区二区| 亚洲第一区视频在线观看 | 亚洲中文字幕在线无码一区二区| 精品一区二区三区免费观看| 免费人妻精品一区二区三区| 国产aⅴ一区二区三区| 国产成人一区二区在线不卡| 国产一区二区三区在线看片| 国产一区内射最近更新| 无码精品人妻一区二区三区中 | 日产亚洲一区二区三区| 日韩精品无码久久一区二区三| 精品人妻一区二区三区毛片| 制服美女视频一区| 国产在线精品一区二区在线观看| 99精品久久精品一区二区| 国产91精品一区二区麻豆亚洲| 国产高清在线精品一区二区| 亚洲中文字幕丝袜制服一区| 亚洲色婷婷一区二区三区| 无码一区二区三区老色鬼| 麻豆AV无码精品一区二区 | 午夜福利国产一区二区| 国产精品主播一区二区| 中文字幕在线精品视频入口一区| 国产成人一区二区三区在线观看| 精品日韩亚洲AV无码一区二区三区|