public ref class ComboBox : System::Windows::Forms::ListControl
public class ComboBox : System.Windows.Forms.ListControl
[System.ComponentModel.DefaultBindingProperty("Text")]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComVisible(true)]
public class ComboBox : System.Windows.Forms.ListControl
[System.ComponentModel.DefaultBindingProperty("Text")]
public class ComboBox : System.Windows.Forms.ListControl
type ComboBox = class
inherit ListControl
[<System.ComponentModel.DefaultBindingProperty("Text")>]
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ComboBox = class
inherit ListControl
[<System.ComponentModel.DefaultBindingProperty("Text")>]
type ComboBox = class
inherit ListControl
Public Class ComboBox
Inherits ListControl
ComboBox
下面的代码示例是一个完整的应用程序,演示如何使用
Add
该方法向 a
ComboBox
添加项、
FindString
查找项的方法
BeginUpdate
ComboBox
以及有效向 a
ComboBox
添加大量项的方法和
EndUpdate
方法。 存储不同于显示文本的值的功能继承自
ListControl
。 有关如何使用此功能的示例,请参阅
ListControl
类。
必须添加对命名空间的
System.Drawing``System.Windows.Forms
引用才能运行此示例。
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
using namespace System;
using namespace System::Windows::Forms;
namespace Win32Form1Namespace
public ref class Win32Form1: public System::Windows::Forms::Form
private:
System::Windows::Forms::Button^ addButton;
System::Windows::Forms::TextBox^ textBox2;
System::Windows::Forms::Button^ addGrandButton;
System::Windows::Forms::ComboBox^ comboBox1;
System::Windows::Forms::Button^ showSelectedButton;
System::Windows::Forms::TextBox^ textBox1;
System::Windows::Forms::Button^ findButton;
System::Windows::Forms::Label ^ label1;
public:
Win32Form1()
this->InitializeComponent();
private:
void InitializeComponent()
this->addButton = gcnew System::Windows::Forms::Button;
this->textBox2 = gcnew System::Windows::Forms::TextBox;
this->addGrandButton = gcnew System::Windows::Forms::Button;
this->comboBox1 = gcnew System::Windows::Forms::ComboBox;
this->showSelectedButton = gcnew System::Windows::Forms::Button;
this->textBox1 = gcnew System::Windows::Forms::TextBox;
this->findButton = gcnew System::Windows::Forms::Button;
this->label1 = gcnew System::Windows::Forms::Label;
this->addButton->Location = System::Drawing::Point( 248, 32 );
this->addButton->Size = System::Drawing::Size( 40, 24 );
this->addButton->TabIndex = 1;
this->addButton->Text = "Add";
this->addButton->Click += gcnew System::EventHandler(
this, &Win32Form1::addButton_Click );
this->textBox2->Location = System::Drawing::Point( 8, 64 );
this->textBox2->Size = System::Drawing::Size( 232, 20 );
this->textBox2->TabIndex = 6;
this->textBox2->Text = "";
this->addGrandButton->Location = System::Drawing::Point( 8, 96 );
this->addGrandButton->Size = System::Drawing::Size( 280, 23 );
this->addGrandButton->TabIndex = 2;
this->addGrandButton->Text = "Add 1, 000 Items";
this->addGrandButton->Click += gcnew System::EventHandler(
this, &Win32Form1::addGrandButton_Click );
this->comboBox1->Anchor = (System::Windows::Forms::AnchorStyles)(
(System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left) |
System::Windows::Forms::AnchorStyles::Right);
this->comboBox1->DropDownWidth = 280;
array<Object^>^ objectArray = {"Item 1",
"Item 2",
"Item 3",
"Item 4",
"Item 5"};
this->comboBox1->Items->AddRange( objectArray );
this->comboBox1->Location = System::Drawing::Point( 8, 248 );
this->comboBox1->Size = System::Drawing::Size( 280, 21 );
this->comboBox1->TabIndex = 7;
this->showSelectedButton->Location = System::Drawing::Point( 8, 128 );
this->showSelectedButton->Size = System::Drawing::Size( 280, 24 );
this->showSelectedButton->TabIndex = 4;
this->showSelectedButton->Text = "What Item is Selected?";
this->showSelectedButton->Click += gcnew System::EventHandler(
this, &Win32Form1::showSelectedButton_Click );
this->textBox1->Location = System::Drawing::Point( 8, 32 );
this->textBox1->Size = System::Drawing::Size( 232, 20 );
this->textBox1->TabIndex = 5;
this->textBox1->Text = "";
this->findButton->Location = System::Drawing::Point( 248, 64 );
this->findButton->Size = System::Drawing::Size( 40, 24 );
this->findButton->TabIndex = 3;
this->findButton->Text = "Find";
this->findButton->Click += gcnew System::EventHandler(
this, &Win32Form1::findButton_Click );
this->label1->Location = System::Drawing::Point( 8, 224 );
this->label1->Size = System::Drawing::Size( 144, 23 );
this->label1->TabIndex = 0;
this->label1->Text = "Test ComboBox";
this->ClientSize = System::Drawing::Size( 292, 273 );
array<System::Windows::Forms::Control^>^ controlsArray = {this->comboBox1,
this->textBox2,
this->textBox1,
this->showSelectedButton,
this->findButton,
this->addGrandButton,
this->addButton,
this->label1};
this->Controls->AddRange( controlsArray );
this->Text = "ComboBox Sample";
void addButton_Click( Object^ sender, System::EventArgs^ e )
comboBox1->Items->Add( textBox1->Text );
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();
void findButton_Click( Object^ sender, System::EventArgs^ e )
int index = comboBox1->FindString( textBox2->Text );
comboBox1->SelectedIndex = index;
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() );
[System::STAThreadAttribute]
int main()
System::Windows::Forms::Application::Run( gcnew Win32Form1Namespace::Win32Form1 );
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.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());
Imports System.Windows.Forms
Namespace ComboBoxSampleNamespace
Public Class ComboBoxSample
Inherits System.Windows.Forms.Form
Private addButton As System.Windows.Forms.Button
Private textBox2 As System.Windows.Forms.TextBox
Private addGrandButton As System.Windows.Forms.Button
Private comboBox1 As System.Windows.Forms.ComboBox
Private showSelectedButton As System.Windows.Forms.Button
Private textBox1 As System.Windows.Forms.TextBox
Private findButton As System.Windows.Forms.Button
Private label1 As System.Windows.Forms.Label
Public Sub New()
MyBase.New()
Me.InitializeComponent()
End Sub
<System.STAThreadAttribute()> Public Shared Sub Main()
System.Windows.Forms.Application.Run(New ComboBoxSample())
End Sub
Private Sub InitializeComponent()
Me.addButton = New System.Windows.Forms.Button()
Me.textBox2 = New System.Windows.Forms.TextBox()
Me.addGrandButton = New System.Windows.Forms.Button()
Me.comboBox1 = New System.Windows.Forms.ComboBox()
Me.showSelectedButton = New System.Windows.Forms.Button()
Me.textBox1 = New System.Windows.Forms.TextBox()
Me.findButton = New System.Windows.Forms.Button()
Me.label1 = New System.Windows.Forms.Label()
Me.addButton.Location = New System.Drawing.Point(248, 32)
Me.addButton.Size = New System.Drawing.Size(40, 24)
Me.addButton.TabIndex = 1
Me.addButton.Text = "Add"
AddHandler Me.addButton.Click, AddressOf Me.addButton_Click
Me.textBox2.Location = New System.Drawing.Point(8, 64)
Me.textBox2.Size = New System.Drawing.Size(232, 20)
Me.textBox2.TabIndex = 6
Me.textBox2.Text = ""
Me.addGrandButton.Location = New System.Drawing.Point(8, 96)
Me.addGrandButton.Size = New System.Drawing.Size(280, 23)
Me.addGrandButton.TabIndex = 2
Me.addGrandButton.Text = "Add 1,000 Items"
AddHandler Me.addGrandButton.Click, AddressOf Me.addGrandButton_Click
Me.comboBox1.Anchor = ((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right)
Me.comboBox1.DropDownWidth = 280
Me.comboBox1.Items.AddRange(New Object() {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"})
Me.comboBox1.Location = New System.Drawing.Point(8, 248)
Me.comboBox1.Size = New System.Drawing.Size(280, 21)
Me.comboBox1.TabIndex = 7
Me.showSelectedButton.Location = New System.Drawing.Point(8, 128)
Me.showSelectedButton.Size = New System.Drawing.Size(280, 24)
Me.showSelectedButton.TabIndex = 4
Me.showSelectedButton.Text = "What Item is Selected?"
AddHandler Me.showSelectedButton.Click, AddressOf Me.showSelectedButton_Click
Me.textBox1.Location = New System.Drawing.Point(8, 32)
Me.textBox1.Size = New System.Drawing.Size(232, 20)
Me.textBox1.TabIndex = 5
Me.textBox1.Text = ""
Me.findButton.Location = New System.Drawing.Point(248, 64)
Me.findButton.Size = New System.Drawing.Size(40, 24)
Me.findButton.TabIndex = 3
Me.findButton.Text = "Find"
AddHandler Me.findButton.Click, AddressOf Me.findButton_Click
Me.label1.Location = New System.Drawing.Point(8, 224)
Me.label1.Size = New System.Drawing.Size(144, 23)
Me.label1.TabIndex = 0
Me.label1.Text = "Test ComboBox"
Me.ClientSize = New System.Drawing.Size(292, 273)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.comboBox1, Me.textBox2, Me.textBox1, Me.showSelectedButton, Me.findButton, Me.addGrandButton, Me.addButton, Me.label1})
Me.Text = "ComboBox Sample"
End Sub
Private Sub addButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
comboBox1.Items.Add(textBox1.Text)
End Sub
Private Sub findButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim index As Integer
index = comboBox1.FindString(textBox2.Text)
comboBox1.SelectedIndex = index
End Sub
Private Sub addGrandButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
comboBox1.BeginUpdate()
Dim I As Integer
For I = 0 To 1000
comboBox1.Items.Add("Item 1" + i.ToString())
comboBox1.EndUpdate()
End Sub
Private Sub showSelectedButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim selectedIndex As Integer
selectedIndex = comboBox1.SelectedIndex
Dim selectedItem As Object
selectedItem = comboBox1.SelectedItem
MessageBox.Show("Selected Item Text: " & selectedItem.ToString() & Microsoft.VisualBasic.Constants.vbCrLf & _
"Index: " & selectedIndex.ToString())
End Sub
End Class
End Namespace
显示
ComboBox
与 a
ListBox
组合的文本框,使用户能够从列表中选择项目或输入新值。
该
DropDownStyle
属性指定列表是始终显示还是列表是否显示在下拉列表中。 该
DropDownStyle
属性还指定是否可以编辑文本部分。 请参阅
ComboBoxStyle
可用设置及其效果。 没有设置始终显示列表,不允许输入新值。 若要显示无法添加新值的列表,请使用
ListBox
控件。
若要在运行时添加或删除列表中的对象,请使用类的方法
ComboBox.ObjectCollection
(通过
Items
) 的属性
ComboBox
。 可以使用该方法分配对象引用
AddRange
数组。 然后,该列表显示每个对象的默认字符串值。 可以使用该方法添加单个对象
Add
。 可以使用该方法删除项
Remove
,或使用该方法清除整个列表
Clear
。
除了显示和选择功能外,还提供了一种功能,
ComboBox
使你能够有效地将项添加到
ComboBox
列表的项中并查找文本。
BeginUpdate
使用和
EndUpdate
方法,可以在每次将项添加到列表中时,将大量项
ComboBox
添加到控件中,而无需重新绘制控件。 使用
FindString
和
FindStringExact
方法可以搜索列表中包含特定搜索字符串的项。
可以使用这些属性来管理列表中当前选定的项、用于指定在编辑字段中显示的字符串的属性、
Text
SelectedIndex
要获取或设置当前项的属性以及
SelectedItem
用于获取或设置对对象的引用的属性。
如果你有一个
ListBox
或
ComboBox
CheckedListBox
基于Windows 窗体页,并且想要修改派生窗体中这些控件的字符串集合,则基窗体中这些控件的字符串集合必须为空。 如果字符串集合不为空,则当派生另一个窗体时,它们将变为只读。