ComboBox 类
表示 Windows 组合框控件。
有关此类型所有成员的列表,请参阅 ComboBox 成员。
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ListControl
System.Windows.Forms.ComboBox
[Visual Basic]Public Class ComboBox Inherits ListControl[C#]public class ComboBox : ListControl[C++]public __gc class ComboBox : public ListControl[JScript]public class ComboBox extends ListControl
线程安全
此类型的所有公共静态(Visual Basic 中为 Shared)成员是线程安全的。但不保证任何实例成员是线程安全的。
备注
ComboBox 显示与一个 ListBox 组合的编辑字段,使用户可以从列表中选择或输入新文本。ComboBox 的默认行为是显示一个编辑字段,该字段附带一个隐藏的下拉列表。DropDownStyle 属性确定要显示的组合框的样式。您可以输入一个值,该值指示允许以下情况:简单的下拉列表(始终显示列表)、下拉列表框(文本部分不可编辑,并且必须选择一个箭头才能查看下拉列表框)或默认下拉列表框(文本部分可编辑,并且用户必须按箭头键才能查看列表)。若要始终显示用户不能编辑的列表,请使用 ListBox 控件。
若要在运行时向列表添加对象,请用 AddRange 方法分配一个对象引用数组。然后,列表显示每个对象的默认字符串值。可以用 Add 方法添加单个对象。
除显示和选择功能外,ComboBox 还提供一些功能使您能够有效地向 ComboBox 添加项以及在列表项内查找文本。BeginUpdate 和 EndUpdate 方法使您能够向 ComboBox 添加大量项而不必在每次向列表添加项时重新绘制控件。FindString 和 FindStringExact 方法使您能够在列表中搜索包含特定搜索字符串的项。
可以使用这些属性管理列表中当前选定的项,使用 Text 属性指定编辑字段中显示的字符串,使用 SelectedIndex 属性获取或设置当前项,以及使用 SelectedItem 属性获取或设置对对象的引用。
示例
[Visual Basic, C#, C++] 下面的示例是个完整的应用程序,阐释可如何使用 Add 方法向 ComboBox 添加项,如何使用 FindString 方法在 ComboBox 中查找项,以及如何使用 BeginUpdate 和 EndUpdate 方法以高效的方式向 ComboBox 添加大量项。
[C#]
using System;using System.Windows.Forms; namespace Win32Form1Namespace { public class Win32Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button addButton; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.Button addGrandButton; private System.Windows.Forms.ComboBox comboBox1; private System.Windows.Forms.Button showSelectedButton; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button findButton; private System.Windows.Forms.Label label1; public Win32Form1() { this.InitializeComponent(); } [System.STAThreadAttribute()] public static void Main () { System.Windows.Forms.Application.Run(new Win32Form1()); } private void InitializeComponent() { this.addButton = new System.Windows.Forms.Button(); this.textBox2 = new System.Windows.Forms.TextBox(); this.addGrandButton = new System.Windows.Forms.Button(); this.comboBox1 = new System.Windows.Forms.ComboBox(); this.showSelectedButton = new System.Windows.Forms.Button(); this.textBox1 = new System.Windows.Forms.TextBox(); this.findButton = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.addButton.Location = new System.Drawing.Point(248, 32); this.addButton.Size = new System.Drawing.Size(40, 24); this.addButton.TabIndex = 1; this.addButton.Text = "Add"; this.addButton.Click += new System.EventHandler(this.addButton_Click); this.textBox2.Location = new System.Drawing.Point(8, 64); this.textBox2.Size = new System.Drawing.Size(232, 20); this.textBox2.TabIndex = 6; this.textBox2.Text = ""; this.addGrandButton.Location = new System.Drawing.Point(8, 96); this.addGrandButton.Size = new System.Drawing.Size(280, 23); this.addGrandButton.TabIndex = 2; this.addGrandButton.Text = "Add 1,000 Items"; this.addGrandButton.Click += new System.EventHandler(this.addGrandButton_Click); this.comboBox1.Anchor = ((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.comboBox1.DropDownWidth = 280; this.comboBox1.Items.AddRange(new object[] {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"}); this.comboBox1.Location = new System.Drawing.Point(8, 248); this.comboBox1.Size = new System.Drawing.Size(280, 21); this.comboBox1.TabIndex = 7; this.showSelectedButton.Location = new System.Drawing.Point(8, 128); this.showSelectedButton.Size = new System.Drawing.Size(280, 24); this.showSelectedButton.TabIndex = 4; this.showSelectedButton.Text = "What Item is Selected?"; this.showSelectedButton.Click += new System.EventHandler(this.showSelectedButton_Click); this.textBox1.Location = new System.Drawing.Point(8, 32); this.textBox1.Size = new System.Drawing.Size(232, 20); this.textBox1.TabIndex = 5; this.textBox1.Text = ""; this.findButton.Location = new System.Drawing.Point(248, 64); this.findButton.Size = new System.Drawing.Size(40, 24); this.findButton.TabIndex = 3; this.findButton.Text = "Find"; this.findButton.Click += new System.EventHandler(this.findButton_Click); this.label1.Location = new System.Drawing.Point(8, 224); this.label1.Size = new System.Drawing.Size(144, 23); this.label1.TabIndex = 0; this.label1.Text = "Test ComboBox"; this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.comboBox1, this.textBox2, this.textBox1, this.showSelectedButton, this.findButton, this.addGrandButton, this.addButton, this.label1}); this.Text = "ComboBox Sample"; } private void addButton_Click(object sender, System.EventArgs e) { comboBox1.Items.Add(textBox1.Text); } private void addGrandButton_Click(object sender, System.EventArgs e) { comboBox1.BeginUpdate(); for (int i = 0; i < 1000; i++) { comboBox1.Items.Add("Item 1" + i.ToString()); } comboBox1.EndUpdate(); } private void findButton_Click(object sender, System.EventArgs e) { int index = comboBox1.FindString(textBox2.Text); comboBox1.SelectedIndex = index; } private void showSelectedButton_Click(object sender, System.EventArgs e) { int selectedIndex = comboBox1.SelectedIndex; Object selectedItem = comboBox1.SelectedItem; MessageBox.Show("Selected Item Text: " + selectedItem.ToString() + "/n" + "Index: " + selectedIndex.ToString()); } }}
浙公网安备 33010602011771号