2012-09-22 3 views
0

Это смешно. У меня есть событие KeyDown, которое меня интересует (для получения события DownArrow Key) для WinForm. Я добавил трек-бэк, который получает автофокус (я не знаю, как). И теперь, когда я нажимаю клавишу со стрелкой ВНИЗ, она автоматически изменяет значение трекбара, а мой код для Winform не работает. Я попытался СКРЫТЬ Трекбар кнопкой, но безрезультатно. У меня даже естьПерехват события KeyDown на WinForm, когда существует Трекбард

e.SuppressKeyPress = true; 

в моем обработчике Form1_KeyDown().

Помогите, я иду haywire.

ответ

0

Вы можете переопределить метод ProcessCmdKey. посмотрите ниже ссылки для получения дополнительной информации.

Up, Down, Left and Right arrow keys do not trigger KeyDown event

http://www.getdotnetcode.com/gdncstore/free/Articles/Overriding%20a%20Controls%20ProcessCmdKey%20Function.htm

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.processcmdkey(v=vs.85).aspx

+0

, к сожалению, UP | DOWN | ЛЕВЫЙ | RIGHT/есть/запуск KeyDown() события, и они потребляются TrackBar. Я нашел решение вокруг него. Это событие Override KeyDown() для трекбара и вызовите событие Form1_KeyDown(). –

+0

Вы проверили с помощью метода ProcessCmdKey()? если вы нажмете какую-либо клавишу в форме, этот метод будет выполнен, если вы переопределите его в вашем файле codebehind формы. –

Смежные вопросы