下拉框 ComboBox 控件

下拉框 ComboBox 控件

下拉框是一种点击右侧按钮后展开选项列表的控件,用户可以选择其中一项或多项(取决于设置)。

可以通过右上角小三角直接输入选项,也可以在后台动态添加。

后台动态添加

在 Form1_Load 事件中动态添加项:

private void Form1_Load(object sender, EventArgs e)
{
    for (int i = 0; i < 10; i++)
    {
        this.comboBox1.Items.Add("item" + i);
    }
}Code language: JavaScript (javascript)

获取选择项

private void button6_Click(object sender, EventArgs e)
{
    MessageBox.Show(this.comboBox1.SelectedItem.ToString());
    MessageBox.Show(this.comboBox1.SelectedIndex.ToString());
}Code language: JavaScript (javascript)
属性说明
SelectedItem获取当前选中的对象
SelectedIndex获取当前选中项的索引(从0开始,-1表示未选中)
SelectedText获取下拉框中当前显示的文本
SelectedValue获取由 ValueMember 指定的值

绑定对象作为选项

实际开发中下拉框通常绑定对象,显示文本和实际值分开:

class ItemInfo
{
    public string Key { set; get; }
    public string Value { set; get; }

    public override string ToString()
    {
        return Value;
    }
}Code language: JavaScript (javascript)
private void Form1_Load(object sender, EventArgs e)
{
    this.comboBox1.DisplayMember = "Value";  // 设置显示的属性
    this.comboBox1.ValueMember = "Key";      // 设置取值的属性

    for (int i = 0; i < 10; i++)
    {
        this.comboBox1.Items.Add(new ItemInfo() { Key = i.ToString(), Value = "val" + i });
    }
}Code language: JavaScript (javascript)
private void button6_Click(object sender, EventArgs e)
{
    ItemInfo it = this.comboBox1.SelectedItem as ItemInfo;
    MessageBox.Show(it.Key);
    MessageBox.Show(it.Value);
}Code language: JavaScript (javascript)

常用属性

属性说明
DropDownStyle下拉样式:DropDown(可输入)、DropDownList(只能选择)
Items选项集合
DisplayMember绑定对象时显示的属性名
ValueMember绑定对象时取值的属性名
SelectedItem选中的对象
SelectedIndex选中项的索引

常用事件

事件说明
SelectedIndexChanged选中项改变时触发
SelectionChangeCommitted用户确认选择改变时触发(区分代码设置)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注