C# CheckBox:复选框控件

< 上一页C# RadioButton C# CheckedListBox下一页 >
C# 语言中复选框 (CheckBox) 是与上一节《C# RadioButton》中介绍的单选按钮相对应的,用于选择多个选项的操作。

复选框主要的属性是:Name、Text、Checked。

其中:
  • Name:表示这个组件的名称;
  • Text:表示这个组件的标题;
  • Checked:表示这个组件是否已经选中。

主要的事件就是 CheckedChanged 事件。

下面通过实例来演示复选框 (CheckBox) 的应用。

【实例】完成选择用户爱好的操作,并在消息框中显示所选的爱好。

根据题目要求,用户爱好包括篮球、排球、羽毛球、乒乓球、游泳、阅读、写作,因此需要 7 个复选框。

实现该功能的窗体名称为 CheckBoxForm,窗体设计如下图所示。

选择爱好的窗体设计界面

单击“确认”按钮显示选择的爱好,实现的代码如下。
  1. public partial class CheckBoxForm : Form
  2. {
  3. public CheckBoxForm()
  4. {
  5. InitializeComponent();
  6. }
  7. //单击“确认”按钮,显示选择的爱好
  8. private void button1_Click(object sender, EventArgs e)
  9. {
  10. string msg = "";
  11. if (checkBox1.Checked)
  12. {
  13. msg = msg + " " + checkBox1.Text;
  14. }
  15. if (checkBox2.Checked)
  16. {
  17. msg = msg + " " + checkBox2.Text;
  18. }
  19. if (checkBox3.Checked)
  20. {
  21. msg = msg + " " + checkBox3.Text;
  22. }
  23. if (checkBox4.Checked)
  24. {
  25. msg = msg + " " + checkBox4.Text;
  26. }
  27. if (checkBox5.Checked)
  28. {
  29. msg = msg + " " + checkBox5.Text;
  30. }
  31. if (checkBox6.Checked)
  32. {
  33. msg = msg + " " + checkBox6.Text;
  34. }
  35. if (checkBox7.Checked)
  36. {
  37. msg = msg + " " + checkBox7.Text;
  38. }
  39. if(msg != "")
  40. {
  41. MessageBox.Show("您选择的爱好是:" + msg, "提示");
  42. }
  43. else
  44. {
  45. MessageBox.Show("您没有选择爱好", "提示");
  46. }
  47. }
  48. }
运行该窗体,效果如下图所示。

选择爱好窗体运行效果

与判断单选按钮是否被选中一样,判断复选框是否被选中也使用 Checked 属性。

试想如果界面上的复选框有几十个或更多,每个复选框都需要判断,则会出现很多的冗余代码。

由于都要获取复选框是否被选中了,界面上的每一个控件都继承自 Control 类,直接判断界面上的控件是否为复选框即可,实现上述功能的代码可以简化为如下。
  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. string msg = "";
  4. foreach(Control c in Controls)
  5. {
  6. //判断控件是否为复选框控件
  7. if(c is CheckBox)
  8. {
  9. if (((CheckBox)c).Checked)
  10. {
  11. msg = msg + " " + ((CheckBox)c).Text;
  12. }
  13. }
  14. }
  15. if(msg != "")
  16. {
  17. MessageBox.Show("您选择的爱好是:" + msg, "提示");
  18. }
  19. else
  20. {
  21. MessageBox.Show("您没有选择爱好", "提示");
  22. }
  23. }
执行以上代码的效果与上图一致,但从代码量上来说已经减少了很多的冗余代码, 减轻了程序员的工作量。

Control 除了可以在界面上查找复选框以外,还可以查找其他控件。
< 上一页C# RadioButton C# CheckedListBox下一页 >