2014-01-29 5 views
-1

Я пытаюсь включить горячие клавиши в моей программе, но я не знаю, как выполнить этот код:KeyDown KeyEventArgs не будет работать

private void Form_KeyDown(object data, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Insert) 
    { 
     timer1.Stop(); 
    } 
} 
+0

Используйте VS и добавьте событие в окне свойств. –

+0

Как вы относитесь к горячим клавишам? Как Ctrl + O для открытия или Alt + F для меню файла? – Brandon

+0

@Brandon да именно так. особенно в этом случае я пытаюсь установить ключ INSERT, чтобы остановить мой таймер. – user3002135

ответ

1

связали вас это событие? Похоже, что он не подключен.

public Form() 
{ 
    this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form_KeyDown); 
} 

Вы можете связать событие таким образом, или дважды щелкните на KeyDown событие в окне Properties в Visual Studio.

Если вы выберете точку и нажмите кнопку, событие будет связано в файле Form.Designer.cs.

Полный код конструктор и метод будет выглядеть следующим образом:

public Form() 
{ 
    this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form_KeyDown); 
} 

private void Form_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Insert) 
    { 
     timer1.Stop(); 
    } 
} 
+0

Я не знаю почему, но ничего не происходит, когда я нажимаю вставку. возможно, это глупо для этого:/ – user3002135

+0

@ user3002135 - вы добавили 'this.KeyDown + = ....' после 'InitializeComponents()' внутри конструктора 'public Form1() {...}' – scheien

+0

i делал, но все еще не работал. мне кажется странным, потому что я все испробовал после всех инструкций, которые я нашел, и никто из них не работал ... – user3002135

1

Просто скопируйте & вставить этот код в форму (я считаю это использование проще)

protected override void OnKeyDown(KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Insert) 
    { 
     timer1.Stop(); 
    } 
} 

EDIT

BTW: Не забудьте установить true для KeyPreview property of the form.

+0

это не работает для меня. – user3002135

+0

@ user3002135 Конечно, это работает. 'Это не работает' не дает никакой информации. Как вы его протестировали. Вы получили сообщение об ошибке? Где ваш код? – EZI

+0

хорошо, когда я использую ключ, он даже не войдет в пустоту. – user3002135

0

За мой комментарий:

Я не уверен, что ключ вставки, но вы ищете Мнемоник. В вашей форме используйте символ «&» перед символом, который вы хотите использовать. Например, на любой кнопке, меню, ярлыке и т. Д., Который говорит «Открыть», измените текст на «& Open», и он будет делать то, что вы хотите.

Редактировать: Имейте в виду, что это связывает комбинацию клавиш Alt + yourCharacter, а не только один ключ. Если вы ищете специальные клавиши (insert, F1 и т. Д.), Вам нужно будет реализовать решение из других ответов (я думаю, что решение QtX будет делать то, что вы хотите)