### CheckBox 控件

#### 1．CheckBox 控件的概述

CheckBox 控件是用来显示允许用户选择 true 或 false 条件的复选框。用户可以从一组 CheckBox 控件中选择一项或多项。图 1 为 CheckBox 控件。

图 1 CheckBox 控件

（1）CheckBox 控件常用的属性

CheckBox 控件常用的属性及说明如表 1 所示。

表 1 CheckBox 控件常用的属性

属性名称 | 属性值
AutoPostBack | 获取或设置一个值，该值指示在单击 CheckBox 控件时，是否自动回发到服务器
CausesValidation | 获取或设置一个值，该值指示在单击 CheckBox 控件时，是否执行验证
Checked | 获取或设置一个值，该值指示是否已选中 CheckBox 控件
Text | 获取或设置与 CheckBox 关联的文本标签
TextAlign | 获取或设置与 CheckBox 控件关联的文本标签的对齐方式
Enabled | 控件是否启用
ID | 获取或设置分配给服务器控件的编程标识符

下面介绍一下 CheckBox 控件的一些重要属性。

q Checked 属性

如果 CheckBox 控件被选中，则 CheckBox 控件的 Checked 属性值为 True，否则为 False。

q TextAlign 属性

CheckBox 控件可以通过 Text 属性指定要在控件中显示的文本。当 CheckBox 控件的 TextAlign 属性值为 Left 时，文本显示在单选按钮的左侧；当 CheckBox 控件的 TextAlign 属性值为 Right 时，文本显示在单选按钮的右侧。

（2）CheckBox 控件常用的事件

CheckBox 控件常用的事件是 CheckedChanged，当 CheckBox 控件的选中状态发生改变时引发该事件。

#### 2． 使用 CheckBox 控件模拟考试系统中的多选题

下面示例主要是模拟考试系统中的多选题功能，并在 CheckBox 控件的 CheckedChanged 事件下，将用户选择的答案显示出来。执行程序并选择答案“ABC”，示例运行结果如图 2 所示，单击【提交】按钮，将会弹出如图 2 提示对话框。

图 2 使用 RadioButton 控件模拟考试系统

图 3 对话框

程序实现的主要步骤：

新建一个网站，默认主页为 Default.aspx，在 Default.aspx 页面上添加 4 个 CheckBox 控件、4 个 Label 控件和一个 Button 控件。其属性设置及其用途如表 2 所示。

表 2 Default.aspx 页面中控件属性设置及其用途

控件类型 | 控件名称 | 主要属性设置 | 用途
标准/Label 控件 | Label1 | Text 属性设置为“” | 显示用户已选择的“A”答案
Label2 | Text 属性设置为“” | 显示用户已选择的“B”答案
Label3 | Text 属性设置为“” | 显示用户已选择的“C”答案
Label4 | Text 属性设置为“” | 显示用户已选择的“D”答案
标准/Button 控件 | Button1 | Text 属性设置为“提交” | 执行提交功能
标准/CheckBox 控件 | CheckBox1 | Text 属性设置为“Ａ：正方形有四条边” | 显示“Ａ：正方形有四条边”文本
AutoPostBack 属性设置为 True | 当单击控件时，自动回发到服务器中
GroupName 属性设置为 Key | RadioButton 控件的组名，强制执行单选操作
TextAlign 属性设置为 Right | 文本显示在单选按钮的右侧
CheckBox2 | Text 属性设置为“Ｂ：地球是长的” | 显示“Ｂ：地球是长的”文本
AutoPostBack 属性设置为 True | 当单击控件时，自动回发到服务器中
GroupName 属性设置为 Key | RadioButton 控件的组名，强制执行单选操作
TextAlign 属性设置为 Right | 文本显示在单选按钮的右侧
CheckBox3 | Text 属性设置为“Ｃ：地球是方的” | 显示“Ｃ：地球是方的”文本
AutoPostBack 属性设置为 True | 当单击控件时，自动回发到服务器中
GroupName 属性设置为 Key | RadioButton 控件的组名，强制执行单选操作
TextAlign 属性设置为 Right | 文本显示在单选按钮的右侧
CheckBox4 | Text 属性设置为“Ｄ：地球是椭圆的” | 显示“Ｄ：地球是椭圆的”文本
AutoPostBack 属性设置为 True | 当单击控件时，自动回发到服务器中
GroupName 属性设置为 Key | RadioButton 控件的组名，强制执行单选操作
TextAlign 属性设置为 Right | 文本显示在单选按钮的右侧

为了使用户将已选择的答案显示在界面上，可以在 CheckBox 控件的 CheckedChanged 事件中，使用 Checked 属性来判断该 CheckBox 控件是否已被选择，如果已被选择，则将其显示出来。复选框 CheckBox1 的 CheckedChanged 事件代码如下：

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)

{

if (CheckBox1.Checked == true)

{

this.Label1.Text = "Ａ";

}

else

{

this.Label1.Text = "";

}

}

注意：复选框 CheckBox2、CheckBox3 和 CheckBox4 控件的 CheckedChanged 事件代码与 CheckBox1 控件的 CheckedChanged 事件代码相似，都是用来判断该复选框是否被选中，如果被选择，则将其显示出来。由于篇幅有限，其他复选框的 CheckedChanged 事件代码将不再给出，请读者参见本书光盘。

当用户已选择完答案，可以通过单击【提交】按钮，获取正确答案。【提交】按钮的 Click 事件代码如下：

protected void Button1_Click(object sender, EventArgs e)

{

//判断用户是否已选择了答案，如果没有作出选择，弹出对话框，提示用户选择答案

if (CheckBox1.Checked == false && CheckBox2.Checked == false && CheckBox3.Checked == false && CheckBox4.Checked == false)

{

Response.Write("<script>alert('请选择答案')</script>");

}

else if (CheckBox1.Checked == true && CheckBox2.Checked == true && CheckBox3.Checked == true && CheckBox4.Checked == false)

{

Response.Write("<script>alert('正确答案为 ABC，恭喜您，答对了！')</script>");

}

else

{

Response.Write("<script>alert('正确答案为 ABC，对不起，答错了！')</script>");

}

}

### 应用锦囊

#### 1．获取 DropDownList 控件选项的索引号和标题

int Index = DropDownList1.SelectedIndex;//获取选项的索引号

string text = DropDownList1.SelectedItem;//获取选项的标题

#### 2．向 DropDownList 控件的下拉列表框中添加列表项

DropDownList1.Items.Add(new ListItem("ASP.NET","0"));

DropDownList1.Items.Add(new ListItem("VB.NET","1"));

DropDownList1.Items.Add(new ListItem("C#.NET", "2"));

DropDownList1.Items.Add(new ListItem("VB", "3"));

#### 3．删除选择的 DropDownList 控件的列表项

ListItem Item = DropDownList1.SelectedItem;

DropDownList1.Items.Remove(Item);

#### 4．移除所有 DropDownList 控件的列表项

DropDownList1.Items.Clear();

#### 5．获取 DropDownList 控件包含的列表项数

int count = DropDownList1.Items.Count;