添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
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
Object
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 窗体页,并且想要修改派生窗体中这些控件的字符串集合,则基窗体中这些控件的字符串集合必须为空。 如果字符串集合不为空,则当派生另一个窗体时,它们将变为只读。