winforms .net 3.5 Ultrawingrid 9.2
В моем подклассе Ultrawingrid.Ultragrid:
Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Windows.Forms.Keys.Tab andalso e.control = True then
SetFocusToNextControl(True)
End if
Mybase.OnKeyDown(e)
End Sub
Это отлично работает. Но когда сетка сбрасывается на вкладке TabControl, Ctrl-Tab выглядит совсем не так, как в подпункте выше. Код e.key рассматривается как ключ управления {17}
Я понимаю, что по умолчанию cntrl-Tab перемещается между вкладками. Мне нужно изменить это поведение. Я думаю, что мне, вероятно, нужен подкласс tabControl, который будет проходить через комбинацию клавиш так же, как это делает форма, но я признаюсь, что не знал, как этого добиться. Я попытался переопределить onkeydown подкласса tabcontrol и просто выполнил возврат, а не базовый вызов onkeydown, если была нажата комбинация ctrl-tab, но казалось, что e.keycode также является управляющей клавишей.
FWIW Я попробовал другую комбинацию, например ctrl-E, и получил почти такой же результат, когда фокус исчез из сетки, но никуда не ушел, что я мог обнаружить. Сабвуфер все еще рассматривал e.control как ключ управления.
Как ни странно, ctrl-X, ctrl-A и т. Д. Все работают в сетке, и комбинация ctrl-Delete, которую я поместил в подкласс для удаления строки, работает нормально.
Еще раз - сетка прямо в форме, и все это работает.
Я определенно над головой над этим. Руководство высоко ценится. VB или C # хорошо.
ТИА