Перейти к содержимому

Как использовать combobox c

  • автор:

Практическое руководство. Добавление и удаление элементов, отображаемых в элементах управления ComboBox, ListBox и CheckedListBox в Windows Forms

Элементы в поле со списком, список или список с флажками Windows Forms можно добавлять различными способами, так как эти элементы управления могут быть привязаны к самым разным источникам данных. В этом разделе демонстрируется самый простой метод, не требующий привязки данных. Чаще всего в качестве отображаемых элементов выступают строки, однако при необходимости можно использовать любой объект. Текст, отображаемый в элементе управления, представляет собой значение, возвращаемое методом ToString объекта.

Добавление элементов

  1. Чтобы добавить строку или объект в список, используйте метод Add класса ObjectCollection . Ссылка на коллекцию задается с помощью свойства Items :
ComboBox1.Items.Add("Tokyo") 
comboBox1.Items.Add("Tokyo"); 
comboBox1->Items->Add("Tokyo"); 
CheckedListBox1.Items.Insert(0, "Copenhagen") 
checkedListBox1.Items.Insert(0, "Copenhagen"); 
checkedListBox1->Items->Insert(0, "Copenhagen"); 
Dim ItemObject(9) As System.Object Dim i As Integer For i = 0 To 9 ItemObject(i) = "Item" & i Next i ListBox1.Items.AddRange(ItemObject) 
System.Object[] ItemObject = new System.Object[10]; for (int i = 0; i listBox1.Items.AddRange(ItemObject); 
Array^ ItemObject = gcnew Array(10); for (int i = 0; i listBox1->Items->AddRange(ItemObject); 

Удаление элемента

  1. Для удаления элементов вызовите метод Remove или RemoveAt . Метод Remove имеет один аргумент, который указывает удаляемый элемент.Метод RemoveAt удаляет элемент с указанным индексом.
' To remove item with index 0: ComboBox1.Items.RemoveAt(0) ' To remove currently selected item: ComboBox1.Items.Remove(ComboBox1.SelectedItem) ' To remove "Tokyo" item: ComboBox1.Items.Remove("Tokyo") 
// To remove item with index 0: comboBox1.Items.RemoveAt(0); // To remove currently selected item: comboBox1.Items.Remove(comboBox1.SelectedItem); // To remove "Tokyo" item: comboBox1.Items.Remove("Tokyo"); 
// To remove item with index 0: comboBox1->Items->RemoveAt(0); // To remove currently selected item: comboBox1->Items->Remove(comboBox1->SelectedItem); // To remove "Tokyo" item: comboBox1->Items->Remove("Tokyo"); 

Удаление всех элементов

  1. Чтобы удалить все элементы из коллекции, вызовите метод Clear :
ListBox1.Items.Clear() 
listBox1.Items.Clear(); 
listBox1->Items->Clear(); 

См. также

  • ComboBox
  • ListBox
  • CheckedListBox
  • Практическое руководство. Сортировка содержимого элемента управления ComboBox, ListBox или CheckedListBox в Windows Forms
  • Применение элемента управления ComboBox вместо элемента управления ListBox в Windows Forms
  • Создание списка для выбора элементов в Windows Forms

Как использовать combobox c

Класс ComboBox представляет выпадающий список. Например, определим элемент ComboBox в xaml:

   Tom Bob Sam Alice    

Здесь в качестве элементов выпадающего списка используются строки. И после запуска программы мы сможем выбрать один из четырех элементов:

ComboBox в WPF и C#

В реальности в качестве элементов могут выступать любые объекты, например, элементы TextBlock :

 Tom Bob Sam Alice  

Результат будет тот же самый, что и в предыдущем случае.

Однако также в WPF предоставляет для ComboBoxe специальный тип — ComboBoxItem . ComboBoxItem представляет элемент управления содержимым, в который через свойство Content мы можем поместить другие элементы. Например:

     Tom Microsoft    Bob Google    Sam JetBrains      

Элемент ComboBox и создание выпадающих списков в WPF и C#

Стоит отметить, что в примеры выше для демонстрации применяется повторяющаяся разметка. В реальном же приложении для создании подобных разметок, применяются шаблон данных и механизм привязки, которые рассматриваются в последующих главах.

Как и другие элементы управления списками, ComboBox можно отображать объекты пользовательсих классов. Например, определим пустой ComboBox :

В файле связанного кода C# определим класс Person, который представляет данные, и добавим в список несколько объектов этого класса:

using System.Windows; namespace MetanitApp; public partial class MainWindow : Window < public MainWindow() < InitializeComponent(); peopleComboBox.ItemsSource = new Person[] < new Person < Name = "Tom", Company = "Microsoft" >, new Person < Name = "Bob", Company = "Google" >, new Person < Name = "Sam", Company = "JetBrains" >>; > > public class Person < public string Name < get; set; >= ""; public string Company < get; set; >= ""; public override string ToString() => $" ()"; >

Отображение сложных объектов в ComboBox в WPF и C#

По умолчанию ComboBox выводит строковое представление объекта. Если необходимо отображать значение определенного свойства, применяется свойство DisplayMemberPath , например, выведем значение свойства Name:

Событие SelectionChanged и обработка выбора объекта

Обрабатывая событие SelectionChanged , мы можем динамически получать выделенный элемент. Для управления выбранными объектами класс ComboBox предоставляет следующие свойства:

  • SelectedItem : выбранный объект списка
  • SelectedValue : выбранное значение
  • SelectedIndex : индекс выбранного объекта в списке

Определим в xaml следующий интерфейс:

Здесь для события SelectionChanged установлен обработчик «peopleComboBox_SelectionChanged», а для вывода выбранного объекта определен элемент TextBlock.

В коде C# определим обработчик события:

using System.Windows; using System.Windows.Controls; namespace MetanitApp; public partial class MainWindow : Window < public MainWindow() < InitializeComponent(); peopleComboBox.ItemsSource = new Person[] < new Person < Name = "Tom", Company = "Microsoft" >, new Person < Name = "Bob", Company = "Google" >, new Person < Name = "Sam", Company = "JetBrains" >>; peopleComboBox.SelectedIndex = 1; // по умолчанию будет выбран второй элемент > private void peopleComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) < if(peopleComboBox.SelectedItem is Person person) < selectedLabel.Text = person.Name; >> > public class Person < public string Name < get; set; >= ""; public string Company < get; set; >= ""; public override string ToString() => $" ()"; >

Поскольку здесь элементами списка являются объекты Person, то выбранный объект мы можем привести к типу Person

if(peopleComboBox.SelectedItem is Person person)

И вывести в текстовую метку значение свойства Name:

Обработка выбора элемента и событие SelectionChanged в WPF и C#

Также мы могли бы использовать свойство SelectedValue , которое представляет выбранное значение. Для его использования определим следующий код xaml:

Обратите внимание на свойство SelectedValuePath=»Name» — здесь мы указываем, что свойство «Name» будет выступать в качестве свойства значения.

Для обработки события выбора элемента определим следующий код C#:

using System.Windows; using System.Windows.Controls; namespace MetanitApp; public partial class MainWindow : Window < public MainWindow() < InitializeComponent(); peopleComboBox.ItemsSource = new Person[] < new Person < Name = "Tom", Company = "Microsoft" >, new Person < Name = "Bob", Company = "Google" >, new Person < Name = "Sam", Company = "JetBrains" >>; peopleComboBox.SelectedIndex = 1; // по умолчанию будет выбран второй элемент > private void peopleComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) < if(peopleComboBox.SelectedValue is < >) // если не равно null < selectedPerson.Text = peopleComboBox.SelectedValue.ToString(); >// или так // selectedPerson.Text = peopleComboBox.SelectedValue?.ToString(); > > public class Person < public string Name < get; set; >= ""; public string Company < get; set; >= ""; public override string ToString() => $" ()"; >

Здесь проверяем, не равно ли peopleComboBox.SelectedValue null (хотя в примере выше это не имеет смысла, поскольку это свойство представляет строку), и выводим значение этого свойства в текстовый блок. Результат будет аналогичен предыдущему.

Свойства

Установка свойства IsEditable=»True» позволяет вводить в поле списка начальные символы, а затем функция автозаполнения подставит подходящий результат. По умолчанию свойство имеет значение False .

Это свойство работает в комбинации со свойством IsReadOnly : оно указывает, является поле ввода доступным только для чтения. По умолчанию имеет значение False , поэтому если IsEditable=»True» , то мы можем вводить туда произвольный текст.

Еще одно свойство StaysOpenOnEdit при установке в True позволяет сделать список раскрытым на время ввода значений в поле ввода.

Программирование на C, C# и Java

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode

Как добавить в ComboBox пункты. Как использовать ComboBox

ComboBox — это элемент управления Windows Forms, который представляет собой поле со списком.

Как добавить в ComboBox пункты. Как использовать ComboBox

Однако при первым знакомстве с ним не все понимают, как добавить в ComboBox пункты.

Для этого в форме программы нужно выделить ComboBox, кликнув на него левой кнопкой мыши. В верхнем правом углу появится стрелка , при нажатии на которую вылезет вот такое окошечко:

Как добавить в ComboBox пункты. Как использовать ComboBox

Далее надо нажать на «Изменить элементы…», откроется окно:

Как добавить в ComboBox пункты. Как использовать ComboBox

В него мы и записываем нужные нам пункты, а затем нажимаем «ОК».

Как добавить в ComboBox пункты. Как использовать ComboBox

Теперь при запуске формы мы сможем выбрать в ComboBox’e нужный нам пункт.

Кроме того можно добавлять пункты в самом коде, используя свойство comboBox1.Items.Add().

В скобках мы пишем, какой пункт мы хотим добавить.

Например, можно это делать при загрузке формы, дважды щёлкнув на форму, чтобы перейти в нужный участок кода. Там мы для примера напишем:

private void Form1_Load ( object sender , EventArgs e )
comboBox1 . Items . Add ( «Добавить этот пункт» ) ;
comboBox1 . Items . Add ( «И этот пункт» ) ;

Запускаем программу, и вот, что мы видим:

Как добавить в ComboBox пункты. Как использовать ComboBox

Теперь к нашим имеющимся (или вместо, если не хотите возиться в форме) добавились пункты, указанные в коде.

Но как же нам теперь использовать их?

Доступ к пунктам СomboBox’a в коде можно получить, используя свойство comboBox1.SelectedIndex.

Индексы в СomboBox’e — это и есть пункты его списка, начинающиеся сверху. В C# индексы считаются с нуля, так что самый верхний пункт списка (у нас это vscode.ru) будет иметь индекс 0, ниже его — индекс 1, ещё ниже — индекс 2 и так далее.

Сейчас мы напишем кусочек кода, который покажет действие этого свойства. В данном коде при выборе элементов, чьи индексы написаны (0 и 1), в программе появляется MessageBox с сообщением. В форме мы дважды кликам на СomboBox, а затем пишем:

Combo Box Класс

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Представляет элемент управления «поле со списком» Windows.

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
[] [] [] type ComboBox = class inherit ListControl
[] type ComboBox = class inherit ListControl
Public Class ComboBox Inherits ListControl

Наследование
Производный

Примеры

В следующем примере кода показано, как можно использовать Add метод для добавления элементов ComboBoxв , FindString метод для поиска элементов в и методы и EndUpdate для BeginUpdate эффективного добавления большого количества элементов ComboBoxв ComboBox. Возможность хранения значений, отличных от отображаемого текста, наследуется от ListControl. Пример использования этой функции см. в ListControl классе .

Для выполнения этого примера необходимо добавить ссылки на System.Drawing пространства имен и System.Windows.Forms .

#using #using #using 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^ objectArray = ; 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^ controlsArray = 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()
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[] ); 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.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 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() ) 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.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()) Next 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 текстовое поле в сочетании с 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 Forms и вы хотите изменить строковые коллекции этих элементов управления в производной форме, строковые коллекции этих элементов управления в базовой форме должны быть пустыми. Если коллекции строк не пусты, они становятся доступными только для чтения при создании другой формы.

Конструкторы

Инициализирует новый экземпляр класса ComboBox.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *