Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 日本高清视频在线免费观看,一区免费在线观看,91网址在线播放

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          WinForms 中的 CheckBox 控件使用指南

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

          創(chuàng)建和設(shè)置 CheckBox 控件

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

          事件處理

          • CheckedChanged 事件:當(dāng) CheckBox 的選中狀態(tài)發(fā)生變化時(shí),會(huì)觸發(fā) CheckedChanged 事件。

          示例代碼

          以下是一個(gè)簡單的示例,演示如何創(chuàng)建一個(gè) CheckBox 控件,并處理其 CheckedChanged 事件:

          public partial class MainForm : Form
          {
              public MainForm()
              {
                  InitializeComponent();
          
                  // 創(chuàng)建 CheckBox 實(shí)例
                  CheckBox checkBox1 = new CheckBox();
          
                  // 設(shè)置 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;
          
                  // 在這里執(zhí)行當(dāng)選中狀態(tài)改變時(shí)的操作,例如啟用或禁用其他控件
                  if (checkBox.Checked)
                  {
                      labelStatus.Text = "已選中";
                  }
                  else
                  {
                      labelStatus.Text = "未選中";
                  }
              }
          }
          

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

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


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

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

          正文


          常用屬性


          Checked

          獲取或設(shè)置一個(gè)值,該值指示 CheckBox 是否處于選中狀態(tài)。

          CheckState

          獲取或設(shè)置 CheckBox 的狀態(tài)。

          ThreeState

          獲取或設(shè)置一個(gè)值,該值指示此 CheckBox 是否允許三種復(fù)選狀態(tài)而不是兩種。

          Tag

          獲取或設(shè)置包含有關(guān)控件的數(shù)據(jù)的對(duì)象。

          Text

          獲取或設(shè)置與此控件關(guān)聯(lián)的文本。

          常用事件


          CheckedChanged

          當(dāng) Checked 屬性的值更改時(shí)發(fā)生。

          CheckStateChanged

          當(dāng) CheckState 屬性的值更改時(shí)發(fā)生。

          我們做一個(gè)checkbox的權(quán)限設(shè)置界面

          設(shè)置權(quán)限按鈕設(shè)置名稱: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("權(quán)限管理;");
              }
              if (checkBox4.Checked)
              {
                  sb.Append("設(shè)備管理;");
              }
              if (checkBox5.Checked)
              {
                  sb.Append("質(zhì)量管理;");
              }
              MessageBox.Show(sb.ToString());
          }

          我們改進(jìn)一下,通過編譯窗體中的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有一個(gè)三態(tài)的狀態(tài)

          CheckState



          Checked

          1

          該控件處于選中狀態(tài)。

          Indeterminate

          2

          該控件處于不確定狀態(tài)。 一個(gè)不確定的控件通常具有灰色的外觀。

          Unchecked

          0

          該控件處于未選中狀態(tài)。

          Indeterminate 不確定狀態(tài)

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

          案例Form


          本例所用Form窗口如上圖所示,問題:要求在生成chart圖表時(shí),根據(jù)統(tǒng)計(jì)結(jié)果即柱狀圖的數(shù)量,動(dòng)態(tài)生成右側(cè)CheckBox,并實(shí)現(xiàn)初始狀態(tài)全部CheckBox為選中狀態(tài),改變選中數(shù)量時(shí)左側(cè)圖標(biāo)自動(dòng)顯示對(duì)應(yīng)柱狀圖。

          解決問題思路:

          (1)獲取查詢記錄集的數(shù)量(要生成多少個(gè)CheckBox實(shí)例對(duì)象)

          int cnt=ds.Tables[0].Rows.Count;//ds存儲(chǔ)查詢結(jié)果,查詢過程略,cnt即為記錄集條數(shù)
          

          (2)對(duì)通過new 實(shí)例化的CheckBox如何存儲(chǔ)?(本例需要生成三個(gè)checkbox)

          C#中本身不提供長度未知的動(dòng)態(tài)數(shù)組,因此不能直接使用數(shù)組對(duì)實(shí)例化后對(duì)象進(jìn)行存儲(chǔ),本例設(shè)計(jì)使用ArrayList實(shí)現(xiàn)長度未知?jiǎng)討B(tài)數(shù)組功能。

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

          (3) 循環(huán)創(chuàng)建CheckBox實(shí)例

          for(int m=0;m<cnt;m++)
          {
           ...
           CheckBox temp= new CheckBox();//temp為實(shí)例化CheckBox
           temp.AutoSize = true;
           temp.Location = new System.Drawing.Point(24, y);//繪圖位置計(jì)算x坐標(biāo),Y坐標(biāo)
           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;//初始化為選中狀態(tài)
           temp.Click += new System.EventHandler(Check_Click);//綁定事件處理函數(shù)
           this.panel1.Controls.Add(temp);
          }
          

          在創(chuàng)建checkbox實(shí)例的同時(shí),由于控件是動(dòng)態(tài)創(chuàng)建的,因此需要手動(dòng)定義消息處理,實(shí)現(xiàn)checkbox的點(diǎn)擊事件。所有的checkbox都響應(yīng)check_Click事件:

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

          (4) check_Click事件編寫

          該事件主要遍歷所有動(dòng)態(tài)生成的checkbox獲取其狀態(tài)構(gòu)造查詢語句,實(shí)現(xiàn)對(duì)記錄集ds數(shù)據(jù)進(jìn)行篩選。由于所有checkbox都響應(yīng)該事件,因此需要object sender參數(shù)接收被點(diǎn)擊的控件,通過arraylist al表示全部的checkbox,并以此為基礎(chǔ)進(jìn)行操作。

          private void Check_Click(object sender, EventArgs e)
           {
           CheckBox ck = (CheckBox)sender;//接收當(dāng)前點(diǎn)擊checkbox
           for(int m = 0; m < al.Count; m++)
           {
           CheckBox cbk = (CheckBox)al[m];
           if (cbk.Checked)
           {
           //循環(huán)遍歷checkbox,獲取每一個(gè)checkbox狀態(tài),構(gòu)造查詢語句條件
           }
           }
          }
          

          以上完成了動(dòng)態(tài)checkbox的創(chuàng)建及消息響應(yīng)設(shè)置,可以進(jìn)一步實(shí)現(xiàn)根據(jù)checkbox選擇顯示Chart不同內(nèi)容了。主要實(shí)現(xiàn)代碼如下:

          chart1.Update();// 使區(qū)域無效
          chart1.DataSource = ds.Tables[0].Select(str);//對(duì)ds記錄集進(jìn)行篩選。str參數(shù)在checkbox響應(yīng)函數(shù)中定義;
          

          至此本案例全部功能可以得到實(shí)現(xiàn),最終實(shí)現(xiàn)效果如本文開頭部分給出的運(yùn)行效果截圖。近期本頭條號(hào)重點(diǎn)對(duì)C# Win Form編程基礎(chǔ)知識(shí)進(jìn)行說明。往期文章請(qǐng)點(diǎn)擊鏈接閱讀:

          1. Win Form登錄框本地記住密碼功能實(shí)現(xiàn)
          2. C# Win Form 編程實(shí)現(xiàn)圖片的數(shù)據(jù)庫存儲(chǔ)
          3. C# Win Form 實(shí)現(xiàn)XML文件讀寫
          4. C# Win Form 讀取CSV文件數(shù)據(jù)

          本頭條號(hào)長期關(guān)注于青少年編程資訊分享;編程課程、素材、代碼分享及青少年編程培訓(xùn)。如果您對(duì)以上方面有興趣,可關(guān)注該頭條號(hào),如有編程學(xué)習(xí)問題可以聯(lián)系作者,共同探討。


          主站蜘蛛池模板: 国产天堂一区二区综合| 日本一区二三区好的精华液 | 日本一区二区三区日本免费| 性色AV一区二区三区无码| 一区二区三区在线| 亚洲乱码一区av春药高潮| 亚洲毛片不卡av在线播放一区| 成人区精品一区二区不卡亚洲 | 亚洲AV美女一区二区三区| 欧美一区内射最近更新| 一区二区三区四区视频| 香蕉免费一区二区三区| 中文字幕一区在线播放| 一区二区高清在线观看| 午夜视频久久久久一区| 精品在线视频一区| 亚洲福利精品一区二区三区| 日韩一区二区三区在线精品| 香蕉久久ac一区二区三区| 亚洲AV无码国产一区二区三区| 精品国产一区二区三区色欲| 国产精品第一区揄拍| 国产成人一区二区三区| 精品在线一区二区三区| 亚洲老妈激情一区二区三区| 国产精品无圣光一区二区| 亚洲一区二区三区无码中文字幕| 伦理一区二区三区| 亚洲大尺度无码无码专线一区| 亚洲AV无码国产精品永久一区| 日韩精品一区二区三区中文3d| 精品伦精品一区二区三区视频| 日韩精品无码一区二区视频| 91精品福利一区二区三区野战| 无码国产精品一区二区高潮| 成人国产一区二区三区| 色狠狠色狠狠综合一区| 午夜无码视频一区二区三区| 97av麻豆蜜桃一区二区| 国产一区二区精品尤物| 亚洲av色香蕉一区二区三区|