Рейтинг:
0
Wendelius
Если я правильно понял ваш вопрос, вы хотите предотвратить изменение выбранного элемента в выпадающем списке.
Если это правильно, то установите Handled
свойство true в вашем коде. Рассмотрим следующий пример:
Private Sub ComboBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles ComboBox1.KeyDown
If e.KeyCode = Keys.Down Then
Me.SelectNextControl(CType(sender, Control), False, True, True, True)
e.Handled = True
End If
End Sub
И то же самое происходит с текстовым полем
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.Left Then
Me.SelectNextControl(CType(sender, Control), False, True, True, True)
e.Handled = True
End If
End Sub
Дополнение
----------
Проводные события в коде
Например, в событии Form_Loaded проводите все события следующим образом
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For Each mycontrol As Control In Me.Controls
If TypeOf mycontrol Is TextBox Or TypeOf mycontrol Is ComboBox Then
AddHandler mycontrol.KeyUp, AddressOf GeneralKeyUpHandler
End If
Next
End Sub
и обработчик событий может выглядеть так
Private Sub GeneralKeyUpHandler(sender As Object, e As KeyEventArgs)
If e.KeyCode = Keys.Left Then
Me.SelectNextControl(CType(sender, Control), False, True, True, True)
e.Handled = True
End If
End Sub
Jayanta Modak
спасибо, сэр, за ваш ответ.
но это не работа.
Private Sub ctrl_next(ByVal sender As System.Объект, бывал е как система.Окна.Формы.KeyEventArgs) обрабатывает cmbitemsalepri.Клавиша вверх, cmbitempurpri.Клавиша вверх, cmbitemmrp.Клавиша вверх, cmbitemopnstk.Клавиша вверх, txtitemcgst.Клавиша вверх, cmbitemsl.Клавиша вверх, cmbitemcl.Клавиша вверх, cmbitemsubcat.Клавиша вверх, cmbitemunit.Клавиша вверх, cmbitemdes.Клавиша вверх, cmbitemnm.Клавиша вверх, cmbitemcate.Клавиша вверх, txtitemsgst.Клавиша вверх, txtitemigst.Клавиша вверх, txtitemcod.Клавиша вверх, cmbhsnitm.Клавиша вверх
Если e.KeyCode = ключи.Тогда Войдите
Me.SelectNextControl(отправитель, истина, истина, истина, истина)
Конец, Если
'Если e.KeyCode = ключи.Осталось Тогда
'Me.SelectNextControl(отправитель, ложь, истина, истина, истина)
-Конец, Если
'Если e.KeyCode = ключи.Осталось Тогда
Меня.SelectNextControl(ctype для(отправитель, контроль), ложь, правда, правда, правда)
'е.Обработано = Истина
-Конец, Если
Конец Подводной Лодки
переходя к следующему элементу управления, я использую ключ ENTER it work fine, но теперь я обновляю свою кодировку обратно к предыдущему элементу управления, как это возможно
Wendelius
Не совсем понимаю, что ты имеешь в виду. Если я тестирую код, он работает так, как ожидалось.
Не могли бы вы более подробно объяснить, как должна работать программа и какая ее часть не работает?
Jayanta Modak
Извините, сэр, я не имею обыкновения говорить, что кодирование неверно, но у меня есть количество combobox и textbox, так что невозможно написать код каждого элемента управления вручную.
Wendelius
Не волнуйтесь, просто спрашивайте больше деталей :)
Итак, вы спрашиваете, как добавить обработчики событий в код вместо того, чтобы делать их вручную?
Wendelius
Взгляните на обновленный ответ
Jayanta Modak
Сэр я использую клавишу управления она работает нормально
Если e.модификаторы = ключи.Управление AndAlso e.KeyCode = ключи.Осталось Тогда
Меня.SelectNextControl(отправитель, ложь, правда, правда, правда)
Конец, Если
Wendelius
Простите, но я не совсем понимаю, что вам нужно.
Не могли бы вы объяснить более подробно, какое поведение вы ищете?