C# ComboBox下拉列表的用法(附带实例)惠阳保姆13825404095

文章正文
发布时间:2025-08-05 10:46

ComboBox 可以翻译为下拉组合框,惠阳保姆13825404095又称下拉列表,此控件基本上是列表(ListBox)功能的扩充,兼具文本框(TextBox)和列表(ListBox)功能。

下拉列表与清单的最大差异是,当未选择时,下拉列表像文本框,清单部分是隐藏的。选择后,所选项目会出现在文本框中。此外,下拉列表右边有按钮,按此按钮可以出现下拉组合框,可以由此选择想要的列表项目。


此外,所选择的项目会在上方的文本框中显示,如果在下拉组合框找不到项目,也可以在上方的文本框中自行创建此项目。
C# ComboBox常用属性 由于 ComboBox 的功能和 ListBox 功能有许多类似,因此也有许多属性功能是一样的。与其他控件一样 ComboBox 可以在属性窗口设定其属性,或是使用程序代码设定,下面是其几个常用的属性。

ComboBox 属性名称 说明
Items   可以创建下拉式列表项目。  
DropDownStyle   这是下拉组合框的外观与功能格式,有下列 3 种格式:

Simple:看起来就像是 TextBox。

DropDownList:只能在下拉组合框选择列表项目。

DropDown:这是默认,可从下拉组合框选择,也可以手动输入

 
DroppedDown   程序设计阶段才可以使用,如果是 True 会主动显示下拉组合框,默认是 False  
MaxDropDownItems   下拉组合框显示的列表项目数量,超出此数量时会有滚动条  
MaxLength   指定下拉组合框中最大的字符数目  
Text   下拉组合框上方文本框的内容  
C# ComboBox事件 设计 ComboBox 时常用的事件有下列两种:

SelectedIndexChanged 事件:当选取下拉组合框项目改变时会产生此事件,这时可以用 Text 属性取得新选取的项目;

TextChanged 事件:当选择项目改变时,会产生此事件。另外,手动输入项目时也会产生此事件。


【实例 1】在 ComboBox 创建选择列表项目,其下方使用标签列出所选的项目。


控件 名称 (Name) 标题 (Text) 大小 (Size) 位置 (Location)
Form   Form1   ch30_23   (400, 250)   (0, 0)  
ComboBox   comboBox1       (198, 31)   (90, 26)  
Label   label1   尚未选取   (82, 23)   (148, 140)  
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { label1.Text = comboBox1.Text; } private void Form1_Load(object sender, EventArgs e) { string[] cards = { "金卡会员", "银卡会员", "普通卡会员" }; comboBox1.Items.AddRange(cards); // 创建列表项目 } } 执行结果为:


【实例 2】结账系统,这个程序可以点选 cboCoffee 下拉组合框的咖啡品项,然后右边会跳出单价,这个 cboCoffee 无法自行增加品项,所以设计时采用 DropDownList 属性,可以参考程序第 17 行的设定。当选择咖啡品项后,可以选择 cboNumber 下拉组合框的数量,这个 cboNumber 可以自行增加数量,所以设计时采用默认的 DropDown 属性。单击“结账”按钮,可以结账。单击“清除”按钮,可以复原程序执行初的设定。


控件 名称 (Name) 标题 (Text) 大小 (Size) 位置 (Location)
Form   Form1   ch30_24   (560, 330)   (0, 0)  
Label   label1   品项   (46, 23)   (77, 39)  
Label   label2   单价   (46, 23)   (380, 39)  
Label   labUnitPrice   0   (23, 23)   (432, 39)  
Label   label4   数量   (46, 23)   (77, 99)  
Label   label5   总金额   (64, 23)   (362, 152)  
Label   lblTotal   0   (20, 23)   (432, 152)  
Button   button1   结账   (112, 34)   (127, 201)  
Button   button2   清除   (112, 34)   (300, 201)  
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { string[] coffees = { "尚未选择", "义式咖啡", "美式咖啡", "拿铁" }; cboCoffee.Items.AddRange(coffees); // 创建咖啡项目 // 咖啡品项无法更改 DropDownList cboCoffee.DropDownStyle = ComboBoxStyle.DropDownList; cboCoffee.SelectedIndex = 0; // 显示索引 0 for (int i = 0; i <= 5; i++) // 建立数量项目 cboNumber.Items.Add(i.ToString()); cboNumber.SelectedIndex = 0; // 显示索引 0 } private void button2_Click(object sender, EventArgs e) { // 按清除钮执行 cboCoffee.SelectedIndex = 0; // 创建索引 0 cboNumber.SelectedIndex = 0; // 创建索引 0 lblUnitPrice.Text = "0"; // 创建单价 lblTotal.Text = "0"; // 显示总金额 } private void cboCoffee_SelectedIndexChanged(object sender, EventArgs e) { if (cboCoffee.Text.Equals("义式咖啡")) lblUnitPrice.Text = "120"; else if (cboCoffee.Text.Equals("美式咖啡")) lblUnitPrice.Text = "100"; else if (cboCoffee.Text.Equals("拿铁")) lblUnitPrice.Text = "150"; } private void button1_Click(object sender, EventArgs e) { // 结账 int n = Convert.ToInt32(cboNumber.Text); // 单价 int u = Convert.ToInt32(lblUnitPrice.Text); // 数量 lblTotal.Text = (n * u).ToString(); // 总价 } } 执行结果为:


上方右下图是在数量字段,笔者输入 10,这是在自行增加列表选项。