### DropDownList 控件

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

DropDownList 控件与 ListBox 控件的使用类似，但 DropDownList 控件只允许用户每次从列表中选择一项，而且只在框中显示选定项。图 1 为 DropDownList 控件。

图 1 DropDownList 控件

（1）DropDownList 控件的常用属性

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

表 1 DropDownList 控件常用的属性

属性名称 | 属性值
Items | 获取列表控件项的集合
SelectedIndex | 获取或设置列表中选定项的最低序号索引
SelectedItem | 获取列表中索引最小的选中的项
SelectedValue | 获取列表控件中选定项的值，或选择列表控件中包含指定值的项
AutoPostBack | 获取或设置一个值，该值指示当用户更改列表中的选定内容时，是否自动产生向服务器的回发
DataSource | 获取或设置对象，数据绑定控件从该对象中检索其数据项列表
ID | 获取或设置分配给服务器控件的编程标识符

DropDownList 控件的属性大部分与 ListBox 控件相同，这里就不再赘述，请读者参见 ListBox 控件中的属性。

（2）DropDownList 控件常用方法

DropDownList 控件常用的方法是 DataBind。当 DropDownList 控件使用 DataSource 属性附加数据源时，使用 DataBind 方法将数据源绑定到 DropDownList 控件上。

（3）DropDownList 控件常用事件

DropDownList 控件常用的事件是 SelectedIndexChanged。当 DropDownList 控件中选定项发生改变时，将会触发 SelectedIndexChanged 事件。

#### 2．将数组绑定到 DropDownList 控件中

下面示例实现的主要功能是，使用 DropDownList 控件的 DataBind 方法，将 ArrayList 数组绑定到 DropDownList 控件中。执行程序，示例运行结果如图 2 所示。

图 2 ListBox 控件（上移前）

程序实现的主要步骤：

（1）新建一个网站，默认主页为 Default.aspx，在 Default.aspx 页面上添加一个 DropDownList 控件。

（2）将页面切换到后台代码区，在使用 ArrayList 类之前，需要引用 ArrayList 类的命名空间，其代码如下：

using System.Collections;

（3）在页面的 Page_Load 事件中，编写如下代码，将 ArrayList 数组绑定到 DropDownList 控件中。

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

ArrayList arrList = new ArrayList();

arrList.Add("星期日");

arrList.Add("星期一");

arrList.Add("星期二");

arrList.Add("星期三");

arrList.Add("星期四");

arrList.Add("星期五");

arrList.Add("星期六");

DropDownList1.DataSource = arrList;

DropDownList1.DataBind();

}

}

#### 3．动态改变 DropDownList 控件的背景色

下面示例实现的主要功能是，当 DropDownList 控件列表项改变时，其背景色也做相应的改变。执行程序，示例运行结果如图 3 所示。

图 3 动态改变 DropDownList 控件的背景色

程序实现的主要步骤：

新建一个网站，默认主页为 Default.aspx，在 Default.aspx 页面上添加一个 DropDownList 控件。其属性设置如表 2 所示。

表 2 DropDownList 控件属性设置

属性名称 | 属性值
ID | DropDownList1
AutoPostBack | True
Font/Bold | True
ForeColor | Black

为了实现当选择的列表项发生改时，DropDownList 控件的背景色也做相应的改变，需要在 DropDownList 控件的 SelectedIndexChanged 事件下，添加如下代码，在 switch 语句中改变 DropDownList 控件的背景色。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)

{

string color = this.DropDownList1.SelectedItem.Value;

switch (color)

{

case "Red":

this.DropDownList1.BackColor = System.Drawing.Color.Red;

break;

case "Green":

this.DropDownList1.BackColor = System.Drawing.Color.Green;

break;

case "Blue":

this.DropDownList1.BackColor = System.Drawing.Color.Blue;

break;

case " LightGray ":

this.DropDownList1.BackColor = System.Drawing.Color. LightGray;

break;

default :

this.DropDownList1.BackColor = System.Drawing.Color.White;

break;

}

}