I have a combobox filed with the name of dataGridView columns, can I change the text of displayed items in the comboBox to any text I want ?
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
if (dataGridView1.Columns[i].ValueType == typeof(string) &&
i != 6 &&
i != 7 &&
i != 8 &&
i != 9)
comboBox1.Items.Add(dataGridView1.Columns[i].Name);
}
comboBox1.SelectedIndex = 0;
jcolebrand
16.3k11 gold badges75 silver badges121 bronze badges
asked Aug 11, 2011 at 17:52
3
I hope this helps you:
combobox.Items[combobox.FindStringExact("string value")] = "new string value";
The FindStringExact
method returns the index of an specific item text, so this can be a better way to change the text of a Combobox
item.
Note: This works fine on C#.
Joe Kennedy
9,2657 gold badges44 silver badges55 bronze badges
answered Dec 10, 2015 at 16:13
1
If the value you want to use is not suitable as the text in a combobox, I usually do something like this:
public class ComboBoxItem<T> {
public string FriendlyName { get; set; }
public T Value { get; set; }
public ComboBoxItem(string friendlyName, T value) {
FriendlyName = friendlyName;
Value = value;
}
public override string ToString() {
return FriendlyName;
}
};
// ...
List<ComboBoxItem<int>> comboBoxItems = new List<ComboBoxItem<int>>();
for (int i = 0; i < 10; i++) {
comboBoxItems.Add(new ComboBoxItem<int>("Item " + i.ToString(), i));
}
_comboBox.DisplayMember = "FriendlyName";
_comboBox.ValueMember = "Value";
_comboBox.DataSource = comboBoxItems;
_comboBox.SelectionChangeCommitted += (object sender, EventArgs e) => {
Console.WriteLine("Selected Text:" + _comboBox.SelectedText);
Console.WriteLine("Selected Value:" + _comboBox.SelectedValue.ToString());
};
answered Aug 11, 2011 at 18:18
gangelogangelo
2,9644 gold badges27 silver badges43 bronze badges
0
Try this:
ListItem item = comboBox1.Items.FindByText("<Text>");
if (item != null)
{
item.Text = "<New Text>";
}
answered Aug 11, 2011 at 18:04
James JohnsonJames Johnson
45.3k8 gold badges72 silver badges110 bronze badges
3
May be instead of changing the text it would be simple to remove the item from a particular index and insert new item at same index with new text
answered Aug 11, 2011 at 17:57
Haris HasanHaris Hasan
29.6k10 gold badges90 silver badges121 bronze badges
You can simply change combo box items text by :
my_combo.Items [i_index] = "some string";
answered Jul 7, 2014 at 8:31
The best way you can do that is in this way:
ui->myComboBox->setItemText(index,"your text");
answered Sep 2, 2015 at 23:31
Angie QuijanoAngie Quijano
4,0193 gold badges23 silver badges30 bronze badges
2
I have a combobox filed with the name of dataGridView columns, can I change the text of displayed items in the comboBox to any text I want ?
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
if (dataGridView1.Columns[i].ValueType == typeof(string) &&
i != 6 &&
i != 7 &&
i != 8 &&
i != 9)
comboBox1.Items.Add(dataGridView1.Columns[i].Name);
}
comboBox1.SelectedIndex = 0;
jcolebrand
16.3k11 gold badges75 silver badges121 bronze badges
asked Aug 11, 2011 at 17:52
3
I hope this helps you:
combobox.Items[combobox.FindStringExact("string value")] = "new string value";
The FindStringExact
method returns the index of an specific item text, so this can be a better way to change the text of a Combobox
item.
Note: This works fine on C#.
Joe Kennedy
9,2657 gold badges44 silver badges55 bronze badges
answered Dec 10, 2015 at 16:13
1
If the value you want to use is not suitable as the text in a combobox, I usually do something like this:
public class ComboBoxItem<T> {
public string FriendlyName { get; set; }
public T Value { get; set; }
public ComboBoxItem(string friendlyName, T value) {
FriendlyName = friendlyName;
Value = value;
}
public override string ToString() {
return FriendlyName;
}
};
// ...
List<ComboBoxItem<int>> comboBoxItems = new List<ComboBoxItem<int>>();
for (int i = 0; i < 10; i++) {
comboBoxItems.Add(new ComboBoxItem<int>("Item " + i.ToString(), i));
}
_comboBox.DisplayMember = "FriendlyName";
_comboBox.ValueMember = "Value";
_comboBox.DataSource = comboBoxItems;
_comboBox.SelectionChangeCommitted += (object sender, EventArgs e) => {
Console.WriteLine("Selected Text:" + _comboBox.SelectedText);
Console.WriteLine("Selected Value:" + _comboBox.SelectedValue.ToString());
};
answered Aug 11, 2011 at 18:18
gangelogangelo
2,9644 gold badges27 silver badges43 bronze badges
0
Try this:
ListItem item = comboBox1.Items.FindByText("<Text>");
if (item != null)
{
item.Text = "<New Text>";
}
answered Aug 11, 2011 at 18:04
James JohnsonJames Johnson
45.3k8 gold badges72 silver badges110 bronze badges
3
May be instead of changing the text it would be simple to remove the item from a particular index and insert new item at same index with new text
answered Aug 11, 2011 at 17:57
Haris HasanHaris Hasan
29.6k10 gold badges90 silver badges121 bronze badges
You can simply change combo box items text by :
my_combo.Items [i_index] = "some string";
answered Jul 7, 2014 at 8:31
The best way you can do that is in this way:
ui->myComboBox->setItemText(index,"your text");
answered Sep 2, 2015 at 23:31
Angie QuijanoAngie Quijano
4,0193 gold badges23 silver badges30 bronze badges
2
- Remove From My Forums
-
Question
-
What I to do is really simple. I want to add a group of text boxes in my VB net application. Please note that the number of text box only can be known at run time.
I want to give default value to this group of text boxes. At run time, users can input text and change the text for each item.
How can I do this? Is there a control to do this?
What I can remember is ComboBox control. However, I only can display the item text and do not know how to change the text for each item.
Thanks in advance.
-
Edited by
Wednesday, May 16, 2012 3:14 AM
-
Edited by
Answers
-
Hi Hyeewang,
Try this code
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim number As Integer = 10
ComboBox1.AutoCompleteSource = AutoCompleteSource.ListItemsComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend
ComboBox1.Items.Clear()
For i = 0 To Number — 1
ComboBox1.Items.Add(«meter» + i.ToString + » location»)
Next
End Subif you want to add the data to the combobox without using textboxes then follow the below code
Private Sub ComboBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ComboBox1.KeyDown
If e.KeyCode = Keys.Enter Then
Dim status As Boolean = False
For i As Integer = 0 To ComboBox1.Items.Count — 1
If ComboBox1.Text = ComboBox1.Items(i) Then
status = True
Exit For
End If
Next
If status = False Then
ComboBox1.Items.Add(ComboBox1.Text)
End If
End If
End Subi this you can selected required item in the combobox or you can type the new text in that combobox and press enter then automatically that text will add into the combobox items
———————————————————————————
if you want to textboxes copy the below code in the keydown events of all textboxes no need to use combobox1_keydown
textbox1_keydown event
If e.KeyCode = Keys.Enter Then
Dim status As Boolean = False
For i As Integer = 0 To ComboBox1.Items.Count — 1
If TextBox1.Text = ComboBox1.Items(i) Then
status = True
Exit For
End If
Next
If status = False Then
ComboBox1.Items.Add(TextBox1.Text)
End If
End If
End Sub——————————————————————————————————————-
if you are creating textboxes dynamically then copy the below code in the key down event function and find the dynamic textbox control text and use that control text value in the place of textbox1.text
Private Sub txt_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
If e.KeyCode = Keys.Enter Then
Dim txt As TextBox = DirectCast(sender, TextBox)Dim status As Boolean = False
For i As Integer = 0 To ComboBox1.Items.Count — 1
If txt .Text = ComboBox1.Items(i) Then
status = True
Exit For
End If
Next
If status = False Then
ComboBox1.Items.Add(txt .Text)
End IfEnd If
End Subi my code after restarting the application new items which are added in the run time will clear if u want that items also just save that items in xml file or database
-
Edited by
Kumar Jalli
Thursday, May 17, 2012 7:44 AM -
Proposed as answer by
srinivas Vallakati
Monday, May 21, 2012 6:30 AM -
Unproposed as answer by
srinivas Vallakati
Monday, May 21, 2012 6:30 AM -
Proposed as answer by
Kumar Jalli
Thursday, May 24, 2012 6:34 AM -
Marked as answer by
Youen Zen
Thursday, May 24, 2012 8:28 AM
-
Edited by
-
Try this piece of code in a new project and see what happens
Public Class Form1 Private ItemsForTheCombobox As New List(Of String) From {"A", "B", "D"} Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click If ComboBox1.Items.Count < 1 Then ComboBox1.Items.AddRange(ItemsForTheCombobox.ToArray) Else ComboBox1.Items.Clear() ItemsForTheCombobox.Insert(2, "C") ComboBox1.Items.AddRange(ItemsForTheCombobox.ToArray) End If ComboBox1.SelectedIndex = 0 End Sub End Class
Success
Cor-
Marked as answer by
Youen Zen
Thursday, May 24, 2012 8:28 AM
-
Marked as answer by
- Remove From My Forums
-
Question
-
What I to do is really simple. I want to add a group of text boxes in my VB net application. Please note that the number of text box only can be known at run time.
I want to give default value to this group of text boxes. At run time, users can input text and change the text for each item.
How can I do this? Is there a control to do this?
What I can remember is ComboBox control. However, I only can display the item text and do not know how to change the text for each item.
Thanks in advance.
-
Edited by
Wednesday, May 16, 2012 3:14 AM
-
Edited by
Answers
-
Hi Hyeewang,
Try this code
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim number As Integer = 10
ComboBox1.AutoCompleteSource = AutoCompleteSource.ListItemsComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend
ComboBox1.Items.Clear()
For i = 0 To Number — 1
ComboBox1.Items.Add(«meter» + i.ToString + » location»)
Next
End Subif you want to add the data to the combobox without using textboxes then follow the below code
Private Sub ComboBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ComboBox1.KeyDown
If e.KeyCode = Keys.Enter Then
Dim status As Boolean = False
For i As Integer = 0 To ComboBox1.Items.Count — 1
If ComboBox1.Text = ComboBox1.Items(i) Then
status = True
Exit For
End If
Next
If status = False Then
ComboBox1.Items.Add(ComboBox1.Text)
End If
End If
End Subi this you can selected required item in the combobox or you can type the new text in that combobox and press enter then automatically that text will add into the combobox items
———————————————————————————
if you want to textboxes copy the below code in the keydown events of all textboxes no need to use combobox1_keydown
textbox1_keydown event
If e.KeyCode = Keys.Enter Then
Dim status As Boolean = False
For i As Integer = 0 To ComboBox1.Items.Count — 1
If TextBox1.Text = ComboBox1.Items(i) Then
status = True
Exit For
End If
Next
If status = False Then
ComboBox1.Items.Add(TextBox1.Text)
End If
End If
End Sub——————————————————————————————————————-
if you are creating textboxes dynamically then copy the below code in the key down event function and find the dynamic textbox control text and use that control text value in the place of textbox1.text
Private Sub txt_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
If e.KeyCode = Keys.Enter Then
Dim txt As TextBox = DirectCast(sender, TextBox)Dim status As Boolean = False
For i As Integer = 0 To ComboBox1.Items.Count — 1
If txt .Text = ComboBox1.Items(i) Then
status = True
Exit For
End If
Next
If status = False Then
ComboBox1.Items.Add(txt .Text)
End IfEnd If
End Subi my code after restarting the application new items which are added in the run time will clear if u want that items also just save that items in xml file or database
-
Edited by
Kumar Jalli
Thursday, May 17, 2012 7:44 AM -
Proposed as answer by
srinivas Vallakati
Monday, May 21, 2012 6:30 AM -
Unproposed as answer by
srinivas Vallakati
Monday, May 21, 2012 6:30 AM -
Proposed as answer by
Kumar Jalli
Thursday, May 24, 2012 6:34 AM -
Marked as answer by
Youen Zen
Thursday, May 24, 2012 8:28 AM
-
Edited by
-
Try this piece of code in a new project and see what happens
Public Class Form1 Private ItemsForTheCombobox As New List(Of String) From {"A", "B", "D"} Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click If ComboBox1.Items.Count < 1 Then ComboBox1.Items.AddRange(ItemsForTheCombobox.ToArray) Else ComboBox1.Items.Clear() ItemsForTheCombobox.Insert(2, "C") ComboBox1.Items.AddRange(ItemsForTheCombobox.ToArray) End If ComboBox1.SelectedIndex = 0 End Sub End Class
Success
Cor-
Marked as answer by
Youen Zen
Thursday, May 24, 2012 8:28 AM
-
Marked as answer by
Последнее обновление: 31.10.2015
Элемент ComboBox образует выпадающий список и совмещает функциональность компонентов ListBox и TextBox. Для хранения элементов списка в ComboBox также предназначено свойство
Items.
Подобным образом, как и с ListBox, мы можем в окне свойств на свойство Items и нам отобразится окно для добавления элементов ComboBox:
И как и с компонентом ListBox, здесь мы также можем программно управлять элементами.
Добавление элементов:
// добавляем один элемент comboBox1.Items.Add("Парагвай"); // добавляем набор элементов comboBox1.Items.AddRange(new string[] { "Уругвай", "Эквадор" }); // добавляем один элемент на определенную позицию comboBox1.Items.Insert(1, "Боливия");
При добавлении с помощью методов Add / AddRange все новые элементы помещаются в конец списка. Однако если мы зададим у ComboBox свойство
Sorted
равным true
, тогда при добавлении будет автоматически производиться сортировка.
Удаление элементов:
// удаляем один элемент comboBox1.Items.Remove("Аргентина"); // удаляем элемент по индексу comboBox1.Items.RemoveAt(1); // удаляем все элементы comboBox1.Items.Clear();
Мы можем получить элемент по индексу и производить с ним разные действия. Например, изменить его:
comboBox1.Items[0] = "Парагвай";
Настройка оформления ComboBox
С помощью ряда свойств можно настроить стиль оформления компонента. Так, свойство DropDownWidth задает ширину выпадающего списка.
С помощью свойства DropDownHeight можно установить высоту выпадающего списка.
Еще одно свойство MaxDropDownItems позволяет задать число видимых элементов списка — от 1 до 100. По умолчанию это число равно 8.
Другое свойство DropDownStyle задает стиль ComboBox. Оно может принимать три возможных значения:
-
Dropdown: используется по умолчанию. Мы можем открыть выпадающий список вариантов при вводе значения в текстовое поле или нажав на кнопку со стрелкой
в правой части элемента, и нам отобразится собственно выпадающий список, в котором можно выбрать возможный вариант -
DropdownList: чтобы открыть выпадающий список, надо нажать на кнопку со стрелкой в правой стороне элемента
-
Simple: ComboBox представляет простое текстовое поле, в котором для перехода между элементами мы можем использовать клавиши
клавиатуры вверх/вниз
Событие SelectedIndexChanged
Наиболее важным событием для ComboBox также является событие SelectedIndexChanged
, позволяющее отследить выбор элемента в списке:
public partial class Form1 : Form { public Form1() { InitializeComponent(); comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged; } void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { string selectedState = comboBox1.SelectedItem.ToString(); MessageBox.Show(selectedState); } }
Здесь также свойство SelectedItem
будет ссылаться на выбранный элемент.
- Remove From My Forums
-
Вопрос
-
Имеется компонент Combobox выводящий значение логического поля. Необходимо что бы эти значение можно было поменять на другие? Попробовал через свойтсво Format (не получилось):
if (e.Value.ToString() ==
«True»)
{
e.Value =
«М»;
}
else
{
e.Value =«Ж»;
}
-
Перемещено
2 октября 2010 г. 21:47
MSDN Forums consolidation (От:Разработка Windows-приложений)
-
Перемещено
Ответы
-
public void InitCombo()
{
Dictionary<bool, string> dt = new Dictionary<bool, string>();
dt.Add(true, «Да»);
dt.Add(false, «Нет»);
ComboBox cb = new ComboBox();
cb.DataSource = new BindingSource(dt, null);
cb.ValueMember = «Key»;
cb.DisplayMember = «Value»;
this.Controls.Add(cb);
cb.SelectedValueChanged += new EventHandler(cb_SelectedValueChanged);
}void cb_SelectedValueChanged(object sender, EventArgs e)
{
MessageBox.Show(String.Format(«Выбрано значение: {0}, показыается: {1}», ((ComboBox)sender).SelectedValue.ToString(), ((ComboBox)sender).Text));
}-
Помечено в качестве ответа
Alexsander Maltcev
29 апреля 2010 г. 9:18
-
Помечено в качестве ответа
298 |
Часть II. Приложения Windows Form |
Кроме того, чтобы было удобно вводить данные в файл, после появления формы курсор должен быть установлен на ввод строк, т. е. элемент TextBox должен получить фокус ввода. Это делается обработкой события Shown, которое возникает, когда форма впервые появляется на экране. Пояснения, в основном, даны по тексту программы. Признак конца ввода всех строк текста — символ «#». Отметим, что данный вариант программы далек от совершенства и может рассматриваться только в качестве примера: здесь надо было бы имена файлов вводить извне (с этим мы познакомимся, когда начнем изучать компоненты из группы Dialogs). Ввод строк для их записи в файл сделан, как раньше говорили, по рабоче-крестьянски: надо было бы ввод в строку заканчивать нажатием клавиши <Enter>, а не выдумывать признак конца строки ввода и специальную кнопку, которую надо нажимать после ввода строки в TextBox, чтобы строка записалась в файл, что очень неудобно. Но для этого надо уметь отлавливать код клавиши, которая была нажата в данный момент. В этой среде автору это не удалось: в заголовке обработчика события OnClick формируется параметр System::EventArgs^ e. Класс EventArgs в предыдущих версиях среды программирования как раз и содержал код текущей нажатой клавиши, которую сравнивали с клавишей <Enter> или любой другой клавишей. В используемой сегодня версии среды этот класс почти полностью выхолощен и содержит один элемент под названием Empty. Может в дальнейшем разработчики VC++ найдут возможность исправить эту и не только эту досадную ошибку.
Результат работы программы, приведенной в листинге, показан на рис. 11.48.
Рис. 11.48. Ввод и вывод с использованием ListBox
Компонент находится в списке All Windows Forms палитры компонентов. Этот компонент является комбинацией редактируемого поля и списка ListBox: в форме он представляется в виде редактируемого поля с треугольной кнопкой справа. Компонент ComboBox используется для вывода данных в виде выпадающего списка и последующей выборки их из этого списка. По умолчанию ComboBox появляется в виде окна для ввода/вывода текста (аналог однострокового TextBox), при этом
Глава 11. Компоненты, создающие интерфейс между пользователем и приложением |
299 |
|
Рис. 11.49. Компонент ComboBox в форме
выпадающий список скрыт. Он является также аналогом компонента ListBox, из которого пользователь может выбирать элементы (рис. 11.49).
Свойства ComboBox
Перечень свойств компонента, отображенных в его окне Properties, показан на рис. 11.50.
Многие свойства нам уже знакомы. Особенно большое совпадение со свойствами компонента ListBox, что вполне естественно, т. к. ComboBox является комбинацией ListBox и TextBox. Однако, что тоже вполне естественно, имеются и чисто специфические свойства.
Items — содержит набор строк ComboBox. Это свойство можно как задавать в режиме дизайна, открыв диалоговое окно редактора кнопкой с многоточием в поле
Рис. 11.50. Перечень свойств компонента ComboBox
300 |
Часть II. Приложения Windows Form |
этого свойства, чтобы ввести туда необходимые строки, так и программно формировать. Если некоторая строка отмечена в ComboBox, то ее индекс помещается
в свойство SelectedIndex.
SelectedIndex — это свойство не показано в окне Properties. Это целочисленная
переменная, изменяющаяся от нуля (т. е. первая строка ComboBox будет иметь индекс, равный нулю, вторая — единице и т. д.). Если кому не нравится произносить слово «индекс (указатель)», то можно назвать его просто номером строки с учетом его отсчета от нуля. Можно программно изменять выбранный из ComboBox элемент, изменять значение SelectedIndex. При этом в списке будет отмечаться новый элемент, соответствующий новому значению SelectedIndex. Пока ни один элемент из ComboBox не выбран, значение SelectedIndex равно –1.
SelectedItem — свойство, сходное со свойством SelectedIndex, только оно возвращает выбранный элемент (обычно это строка). Это свойство не показано
в окне Properties.
Count — свойство, содержащее количество элементов в списке ComboBox. Расчет
количества ведется от 1 (если в списке 10 строк, то Count будет равен 10). Это свойство не показано в окне Properties.
DropDownStyle — свойство, задающее стиль вывода данных компонентом. Может принимать значения:
Simple — в этом случае работает поле редактирования, а кнопка раскрытия списка спрятана (можно только вводить строку данных);
DropDown — в этом случае стрелка раскрытия списка видна, и с ее помощью можно раскрыть список, выбрать строку, которая попадет в поле редактирования, где ее можно отредактировать, прежде чем использовать далее;
DropDownList — выборку из списка можно делать, но выбранную строку уже редактировать нельзя.
Text — свойство, содержащее значение поля редактирования компонента (т. е. из списка можно извлекать строку и редактировать ее).
DropDownWidth и DropDownHeight — ширина и высота выпадающего списка. Если последнее свойство таково, что окно списка не вмещает весь список, то в окне появится полоса прокрутки. Если же окно по размеру больше списка, то при выводе окно примет размер списка.
FlatStyle — стиль окна редактирования. Если задать это свойство в виде PopUp, то при наведении курсора мыши на окно, оно «всплывет», что весьма удобно при контроле за движением курсора мыши. Если свойству придать значение System, то при наведении курсора мыши на окно стрелка, раскрывающая список, изменит цвет.
FormatString — с помощью этого свойства можно задавать форматы вывода некоторых типов данных (чтобы задать формат, надо посредством кнопки с многоточием открыть диалоговое окно и выбрать подходящий формат для выводимых
Глава 11. Компоненты, создающие интерфейс между пользователем и приложением |
301 |
строк). При этом надо помнить, что элементы списка должны быть соответствующего типа (датами, данными по валюте и т. п.).
AutoCompleteCustomSource — это свойство совместно со свойствами
AutoCompleteMode и AutoCompleteSource обеспечивает подсказку с выбором зна-
чения из списка для вводимых строк.
События ComboBox
Перечень событий компонента, отображаемых в его окне Properties, показан на рис. 11.51.
Рис. 11.51. Перечень событий компонента ComboBox
Из всех событий компонента нас в первую очередь интересует то, которое наступает, если в выпадающем списке щелкнуть на выбранной строке. При этом мы должны будем попасть в обработчик этого события, чтобы в нем извлечь из списка нужную нам строку. Это событие — DropDownClosed. Действительно, событие возникает, когда закрывается выпадающий список. А он закрывается именно после щелчка на какой-либо его строке либо после щелчка на поле редактирования (в этом случае никакой выборки не произведено и поэтому свойство SelectedIndex устанавливается в –1, следовательно, эту ситуацию в обработчике тоже надо учитывать).
Некоторые методы ComboBox
Компонент имеет большое количество методов, которые можно посмотреть в справочной системе, нажав клавишу <F1> при подсвеченном в редакторе текста имени этого объекта. Отметим только часто применяемые, такие как:
Focus() — передает фокус ввода компоненту: компонент становится активным и с ним можно работать;
Hide() — делает объект невидимым (прячет его).
302 |
Часть II. Приложения Windows Form |
Чтобы в режиме проектирования добавлять элемент в список, надо воспользоваться свойством Items — при нажатии на кнопку с многоточием в поле этого свойства открывается диалоговое окно для задания множества строк (окно, аналогичное такому же окну для ListBox). Если же вам потребуется обеспечить автоматическую загрузку поля этого компонента, то следует воспользоваться методами свойства Items, которое само является классом и потому обладает своими методами.
После стрелки откроется окно подсказчика.
Основные методы, употребляемые для загрузки ComboBox, — следующие (фактически это методы класса Items, в ComboBox вы их не найдете):
Clear() — очищает поле ComboBox;
Add() — добавляет элемент в конец поля ComboBox;
IndexOf() — выдает индекс строки в поле ComboBox. Строка задается в аргументе
метода. Если строка не найдена, то выдается –1;
Insert() — вставляет строку в поле ComboBox перед указанным в аргументе индексом.
Например, следующие операторы, помещенные в обработчик кнопки,
this->comboBox1->Items->Clear(); this->comboBox1->Items->Add(«Строка1»); //индекс этой строки равен 0 this->comboBox1->Items->Add(«Строка2″); //индекс этой строки равен 1 this->comboBox1->Items->Insert(1,»Insert»);
дают такой результат:
Строка1
Insert
Строка2
Из примера видно, что индекс в ComboBox изменяется от нуля. Это можно проверить и методом IndexOf(), выполнив после указанных выше операторов оператор:
int i=this->comboBox1->Items->IndexOf(«Строка1»);
Значение i будет равно 0.
Remove() — удаляет строку, указанную в аргументе, из поля ComboBox. Например, выполним оператор на множестве трех предыдущих строк:
this->comboBox1->Items->Remove(«Insert»);
Получим результат:
Строка1 Строка2
RemoveAt() — удаляет строку из поля ComboBox, индекс которой указан в аргументе.
Например, выполним оператор:
this->comboBox1->Items->RemoveAt(1);