2012-01-05 4 views
1

Я пытаюсь создать приложение GUI на C#. Я использую MS Visual Studio 2010. У меня много кнопок, и я хочу подключить клавиатуру с помощью кнопок в приложении. Поэтому, когда нажата кнопка «w» (например,), я хочу активировать кнопку. И я хочу, чтобы клавиша удерживала кнопку, чтобы выполнять свою функцию несколько раз. Я попытался сделать это с помощью KeyPress, KeyDown и KeyUp, но они не сработали. Я хочу сделать это как вождение автомобиля в NFS - пока стрелка вверх удерживается, машина движется вперед, но в этом случае, когда текущая кнопка удерживается, ее функция выполняется.KeyPressed in C# GUI

Благодарим вас советом.

ответ

1

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

Когда пользователь нажимает клавишу «W», вы устанавливаете флаг как keyDown и после этого запускаете таймер. По истеченному таймеру вы можете проверить флаг «keyDown» и выполнить назначенную работу для этого ключа. OnKeyUp вы сбросите флаг и остановите таймер.

Надеюсь, это ответит на ваш вопрос.

+0

Я думаю, что это сработает, но я надеялся, что есть более простой способ использования событий, которые они предоставили. :) – Bankin

+0

Получил [это] (http://social.msdn.microsoft.com/forums/en-US/winforms/thread/6d305d65-7691-4e23-ab1d-cac4cf3d4ba4/) сообщение из MSDN. Кажется, они делают то же самое :) –