Как получить индекс выбранного элемента в элементе управления .NET ComboBox? - PullRequest
1 голос
/ 07 февраля 2010

У меня есть ComboBox установка с 4 пунктами, с индексами в диапазоне от 0 до 3.

Позже в моем коде мне нужно сделать определенное событие в зависимости от того, что выбрано. Для этого я подумал о сравнении индекса выбранного элемента ComboBox, поскольку целочисленное сравнение выполняется быстрее строк, верно?

Как я могу получить индекс выбранного элемента?

Ответы [ 3 ]

1 голос
/ 07 февраля 2010

ComboBox имеет свойство SelectedIndex .

myComboBox.SelectedIndex

Относительно сравнения:
Если вы не проводите миллионы сравнений, эта «оптимизация» вам не поможет.

0 голосов
/ 07 февраля 2010

Обычно вы можете получить индекс списка текущего выбранного элемента, используя свойство ComboBox.SelectedIndex.

Однако я сталкивался с ситуациями, когда какой-то текст вводился в текстовое поле комбинированного списка, и свойство SelectedIndex не обновлялось должным образом и вместо этого содержало значение -1. В таких случаях вы можете использовать метод ComboBox.FindStringExact, чтобы найти индекс списка введенного текста:

Dim selectedIndex As Integer = myComboBox.FindStringExact(myComboBox.Text)

(Кстати, если с указанным текстом элемент списка не найден, эта функция вернет -1.)

0 голосов
/ 07 февраля 2010

Вы уверены, что целочисленное сравнение всегда быстрее, чем сравнение строк?

Зависит от длины строк, которые вы сравниваете ... Если вы сравниваете две строки, каждая из которых имеет только один символ, то это простая побайтовая операция AND, которая может быть быстрее, чем сравнение 4-байтового целочисленного значения.

...