选择类控件主要包含复选框控件(CheckBox),单选框控件(RadioButton),下拉组合框控件(ComboBox),列表控件(ListBox),复选组控件(CheckListBox)和数值选择控件(NumericUpDown)等。
一,CheckBox控件和RadioButton控件
CheckBox控件被称为复选框控件,是由System.Windows.Forms.CheckBox类提供的,主要用于讲一个或少数选项列出,让用户从中选择一个或几个。RadioButton控件被称为单选框控件,是由System.Windows.Forms.RadioButton提供的,主要用以讲一个或多个选项列出,让用户从中选择一个。
CheckBox控件的ThreeState属性若设置为true,则有三种状态:
属性 | 说明 |
Checked | 复选框有一个选择标记 |
Unchecked | 复选框没有一个中标记 |
Indeterminate | 在这种状态下复选框显示为灰色 |
CheckBox控件和RadioButton控件常用事件为选中状态改变时响应CheckedChanged事件,格式为(以CheckBox控件为例):
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
}
实例:演示CheckBox控件的Changed事件和RadioButton控件的使用。
(1)在窗体中添加一个CheckBox控件,设置ThreeState为false,双击生成CheckedChanged事件
(2)在窗体上添加两个RadioButton控件
窗体的完整代码为:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked==true)
{
MessageBox.Show("我是选中状态");
}
else
{
MessageBox.Show("我是非选中状态");
}
}
}
}
选中复选框运行窗体的结果为:
不选复选框运行窗体的结果为:
二,ComboBox控件,ListBox控件和CheckListBox控件
ComboBox控件被称为下拉组合框控件,是由System.Windows.Forms.ComboBox类提供的,主要作用是将一个集合数据以组合框的形式显示给用户,用户单击时将以下拉框显示给用户供用户从中选择一项。
ListBox控件是由System.Windows.Forms.ListBox类提供的,主要作用是将一个集合数据以列表框的形式显示给用户供用户从中选择一项或多项。
CheckListBoxt控件是由System.Windows.Forms.CheckListBox类提供的,相当于多个CheckBox控件的组合,它比较适用于代替多个CheckBox。
这三个控件都有一个统一的存放集合的属性Items属性,可通过SelectedItem返回选择对象。ListBox控件和CheckBoxList控件都有一个SelectionMode属性,用于设置是单项选择,多项选择还是不可选择。对于三个控件,当用户更改选择项后,都可响应SelectedIndexChanged事件。其格式为(以CheckListBox控件为例):
private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
实例:演示上述三个控件的使用
(1)在窗体上添加一个ComboBox控件,一个CheckBoxList控件和一个ListBox控件。将CheckListBox控件的 SelectionMode属性设置为MultiSimple,将ListBox控件的SelectionMode属性设置为One,将ComboBox控件的Text属性设置为“请选择”。
(2)双击窗体,生成窗体加载事件,创建一字符串数组,并通过for循环语句将数组中的元素分别加入到三个控件中。代码为:
private void Form1_Load(object sender, EventArgs e)
{
string[] str = {"项一","项二","项三" };
for (int i = 0; i < str.Length; i++)
{
checkedListBox1.Items.Add(str[i].ToString());
listBox1.Items.Add(str[i].ToString());
comboBox1.Items.Add(str[i].ToString());
}
}
(3)双击CheckedListBox控件,生成CheckedListBox控件的SelectIndexChanged事件,添加弹出所选择的项的消息框代码为:
private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("你选择了:"+checkedListBox1.SelectedItem.ToString());
}
完整的窗体代码为:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string[] str = {"项一","项二","项三" };
for (int i = 0; i < str.Length; i++)
{
checkedListBox1.Items.Add(str[i].ToString());
listBox1.Items.Add(str[i].ToString());
comboBox1.Items.Add(str[i].ToString());
}
}
private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("你选择了:"+checkedListBox1.SelectedItem.ToString());
}
}
}
选择“项二”运行窗体的结果为:
三,NumericUpDown控件
NumericUpDown控件是由是由System.Windows.Forms.NumericUpDown类提供的,主要作用是将一个数按一定的值进行增加或减少。其常用的事件为Value值更改时所响应的ValueChanged事件格式为:
NumericUpDown控件常用属性为:
实例,将NumericUpDown控件的Value值赋值给TextBox控件的Text属性。
(1)在窗体上添加一个TextBox控件,一个NumericUpDown控件,将NumericUpDown控件的属性Increment设置为10,属性Maximum设置为500,属性Minimum设置为0,属性Value设置为120。
(2)双击NumericUpDown控件生成ValueChanged事件,在事件中将TextBox控件的属性Text接受NumericUpDown控件的值,代码为:
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
textBox1.Text = numericUpDown1.Value.ToString();
}
窗体完整的代码为:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
textBox1.Text = numericUpDown1.Value.ToString();
}
}
}
运行窗体的结果为: