#.net #vb.net #combobox
#.net #vb.net #combobox
Вопрос:
У меня действительно странная проблема со списком.
У меня есть поле со списком, заполненное записями из базы данных. Однако эта проблема не связана с базой данных или ее содержимым.
Когда я нажимаю стрелку вниз в окне со списком, а затем набираю часть содержимого элементов, когда включен SuggestAppend , он стирает текст, а не завершает строку. Если я просто наберу, проблема не возникнет. Это происходит только тогда, когда я сначала удаляю список.
Вы можете воссоздать это, создав Combobox в пустой форме. Дайте ему несколько элементов, установите для его AutoCompleteSource значение ListItems, а для AutoCompleteMode — значение SuggestAppend.
Теперь во время запуска приложения удалите список, не выходите из этого списка, просто начните вводить часть записи. Затем нажмите enter. Это приведет к удалению содержимого текста поля со списком.
Есть ли способ обойти эту ошибку?
Комментарии:
1. Я не знаю, является ли это поведение, которое вы хотите, но вы могли бы добавить
KeyPress
событие в этот combobox, которое будет установленоYourComboBox.DroppedDown = False
. Это позволяет вам видеть только окно предложения и не очищается при нажатии enter2. Пожалуйста, напишите это как ответ. Это решило мою проблему, и ты мой герой.
Ответ №1:
Проблема возникает только тогда, когда одновременно отображаются как окно предложения, так и поле, содержащее элементы.
Добавьте KeyPress
обработчик в свой combobox и установите для DroppedDown
свойства False
значение, подобное приведенному ниже:
Private Sub YourCombo_KeyPress(sender As Object, e As KeyPressEventArgs) Handles YourCombo.KeyPress
YourCombo.DroppedDown = False
End Sub
Это закроет поле элементов и сохранит поле предложений видимым. При нажатии enter текст больше не будет очищен.