Как получить последний индекс comboBox, когда размер не постоянен? - PullRequest
0 голосов
/ 29 мая 2019

В форме ввода у меня есть два выпадающих списка. Опция, выбранная в первой, определяет, какие опции будут заполнять вторую. Всегда будет опция «По умолчанию» в последнем индексе раскрывающегося списка, но количество элементов будет меняться, поэтому «По умолчанию» не всегда имеет постоянный индекс. Для других опций я могу просто использовать его индекс для других вещей, не зная, что это было, но если выбрано значение по умолчанию, мне нужно выполнить специальное действие.

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

switch( comboBoxOne.SelectedIndex )
{
    case 0:
        if( comboBoxTwo.SelectedIndex == 6 )
            //special action
        break;
    case 1:
    case 2:
        if( comboBoxTwo.SelectedIndex== 4 )
            //special action
        break;
    case 3:
    case 4:
        if( comboBoxTwo.SelectedIndex== 5 )
            //special action
        break;
}

Я не могу использовать comboBoxTwo.MaxDropDownHeight, потому что это всего лишь ограничение на количество предметов, которые вы потенциально можете иметь.

Примечание ** Я не могу установить «По умолчанию» на индекс 0, потому что это приводит к тому, что другие индексы ошибочны, поэтому мне придется больше работать, чтобы сопоставить их с правильным индексом. Кроме того, способ заполнения вторых опций сложен (на самом деле существует 50 различных случаев), поэтому к последнему индексу всегда добавляется значение по умолчанию. Как я могу получить последний действительный индекс элемента из comboBox?

Ответы [ 2 ]

2 голосов
/ 29 мая 2019
Элемент управления

A ComboBox имеет коллекцию Items, которая имеет свойство Count. Таким образом, последний элемент будет с индексом на единицу меньше, чем количество (поскольку индексы начинаются с нуля):

// Select the last item in the combobox
comboBox1.SelectedIndex = comboBox1.Items.Count - 1;
0 голосов
/ 29 мая 2019

Ну, это на самом деле довольно просто ...

Что-то вроде этой работы:

if (ComboBox1.GetItemText(this.ComboBox1.SelectedItem)) == "Default")
 {

  ///Your code goes here

 }; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...