Как установить ComboBox по умолчанию * не в раскрывающемся списке *, если элемент списка начинается с того же текста, что и раскрывающийся элемент? - PullRequest
1 голос
/ 21 июня 2009

Используя C #, скажем, у вас есть ComboBox, для которого DropDownStyle имеет значение DropDown (в выпадающем списке есть элементы, но пользователь также может ввести значение вручную). Как установить значение по умолчанию для ComboBox, которое равно , а не в списке значений в раскрывающемся списке, но начинается с текста из возможного выбора? Обычно настройка ComboBox.Text работает нормально, но если в раскрывающемся списке есть элемент, который начинается с текста, который вы хотите использовать по умолчанию, он автоматически выбирает первый элемент в списке, который начинается с текста. Например:

Значения в раскрывающемся списке:
c:\program files\
c:\windows\
d:\media\

Назначение значения по умолчанию
myComboBox.Text = "C:\";

Результат
Начальное значение ComboBox при открытии формы - "c:\program files\".

Так что я делаю не так? Как правильно установить значение по умолчанию для элемента, которого нет в раскрывающемся списке, который начинается с возможного выбора?

Ответы [ 3 ]

1 голос
/ 21 июня 2009

Я не могу воспроизвести поведение, которое вы описываете. Добавление трех значений через коллекцию Items, а затем установка начального значения в «c: \» (кстати, в образце кода вы не указали @) работали нормально. Я предполагаю, что что-то еще в вашем коде устанавливает значение поля со списком после его установки.

1 голос
/ 21 июня 2009

Работает ли следующий код?

myCombo.SelectedIndex = myCombo.FindString(@"c:\");

Примечание: я не пробовал. Искал свойства / методы, которые могли бы помочь с использованием отражателя.

0 голосов
/ 21 июня 2009

Я смог заставить это работать с тем, чтобы элементы в ComboBox были ComboBoxItems (я не понимаю, почему это не будет работать с другими типами). Установите ComboBox.Text, как вы, и убедитесь, что SelectedIndex = -1, а также вам нужно IsEditable = True.

...