У меня есть ComboBox на форме.Свойство DropDownStyle
ComboBox установлено на DropDown
, так что пользователь может выбрать элемент из раскрывающегося списка или ввести текст вручную.
Когда пользователь выбирает элемент из раскрывающегося спискавниз, я хотел бы внести некоторые изменения в текст элемента, прежде чем он появится в текстовом поле ComboBox.Чтобы использовать очень упрощенный пример, скажем, выпадающий список содержит элементы, которые состоят из идентификатора и описания, например:
101 Cat
102 Dog
103 Bird
Когда выбран один из этих элементов, я бы хотел толькоописание, которое появится в текстовом поле ComboBox.Поэтому, когда выбран «102 Dog», строка «Dog» должна отображаться в текстовом поле, готовая к редактированию пользователем, и элементы в выпадающем списке должны быть неизменными.
Я думалЯ мог бы просто прослушать, скажем, событие SelectionChangeCommitted
ComboBox и установить для свойства Text
ComboBox то, что мне нравится.Но если я сделаю это, изменения, которые я внесу в Text
, будут проигнорированы, и вся строка («102 Dog») все еще будет отображаться в ComboBox.1015 * поле в -1, чтобы указать ComboBox, что настройка Text
I'm не является пунктом в раскрывающемся списке.Но это просто полностью очищает текстовое поле, независимо от того, что я изменяю свойство Text
на
Итак, я решил, что SelectionChangedCommitted
- это неправильное событие, которое нужно использовать, так как оно возникает слишком ранодля моих целей (кажется, что свойство Text
обновляется только моим выбором после того, как обработчик события SelectionChangeCommitted
завершен).Но все другие события ComboBox также не работают, включая SelectedIndexChanged
и DropDownClosed
.
Я думал, что это будет довольно тривиально для достижения.Должен быть простой способ сделать это, и я уверен, что упускаю что-то очевидное ... есть идеи?