Я пытаюсь поймать F5 на System.Windows.Forms
для этого я написал:Поймайте KeyUp Событие на WinForm C#
partial class MainForm
{
(...)
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyUp);
(...)
}
public partial class MainForm : Form
{
(...)
private void MainForm_KeyUp(object sender, KeyEventArgs e)
{
Log("MainForm_KeyUp");
if (e.KeyCode == Keys.F5)
{
RefreshStuff();
}
}
}
Но мое событие ловли выглядит не работает.
Знаете ли вы, как cactch EventKey на System.Windows.Forms
?
Вы можете попробовать протестировать его, выполнив что-то вроде этого .... throw new Exception (e.KeyCode.ToString()); .... Может быть, это даст вам ключ к тому, что вы кодируете, вы должны использовать. Кроме того, обязательно используйте e.Handled = true; – ismellike
Поместите точку останова на первую строку внутри 'MainForm_KeyUp' и убедитесь, что она на самом деле попадает. Что такое 'this.KeyUp + = ...' in? Стор? Метод? Действительно ли этот метод работает? Возможно, вы фактически не подписаны на событие «KeyUp» ... –
@ismellike и Grant Winney, добавив исключение или точку останова, не делает что-то еще. Даже я не получил что-то из своего журнала. Это подтверждает, что событие вообще не поймано. – mickro