Выпадающий список удаляет предложение при нажатии Enter с удаленным содержимым

#.net #vb.net #combobox

#.net #vb.net #combobox

Вопрос:

У меня действительно странная проблема со списком.

У меня есть поле со списком, заполненное записями из базы данных. Однако эта проблема не связана с базой данных или ее содержимым.

Когда я нажимаю стрелку вниз в окне со списком, а затем набираю часть содержимого элементов, когда включен SuggestAppend , он стирает текст, а не завершает строку. Если я просто наберу, проблема не возникнет. Это происходит только тогда, когда я сначала удаляю список.

Вы можете воссоздать это, создав Combobox в пустой форме. Дайте ему несколько элементов, установите для его AutoCompleteSource значение ListItems, а для AutoCompleteMode — значение SuggestAppend.

Теперь во время запуска приложения удалите список, не выходите из этого списка, просто начните вводить часть записи. Затем нажмите enter. Это приведет к удалению содержимого текста поля со списком.

Есть ли способ обойти эту ошибку?

Комментарии:

1. Я не знаю, является ли это поведение, которое вы хотите, но вы могли бы добавить KeyPress событие в этот combobox, которое будет установлено YourComboBox.DroppedDown = False . Это позволяет вам видеть только окно предложения и не очищается при нажатии enter

2. Пожалуйста, напишите это как ответ. Это решило мою проблему, и ты мой герой.

Ответ №1:

Проблема возникает только тогда, когда одновременно отображаются как окно предложения, так и поле, содержащее элементы.

Добавьте KeyPress обработчик в свой combobox и установите для DroppedDown свойства False значение, подобное приведенному ниже:

 Private Sub YourCombo_KeyPress(sender As Object, e As KeyPressEventArgs) Handles YourCombo.KeyPress
    YourCombo.DroppedDown = False
End Sub
  

Это закроет поле элементов и сохранит поле предложений видимым. При нажатии enter текст больше не будет очищен.