Событие Windows.Form not fire keyDown
private void screensaverWindow_Load(object sender, System.EventArgs e)
{
this.BringToFront();
this.Focus();
this.KeyPreview = true;
this.KeyDown += new KeyEventHandler(onkeyDown);
}
onKeyDown()
никогда не вызывается. Любая идея почему?
ИЗМЕНИТЬ:
Это работает в режиме выпуска!? Я предполагаю, что это должен быть отладчик визуальной студии, где-то мешающий
Ответы
Ответ 1
Кажется, работает для меня:
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.BringToFront();
this.Focus();
this.KeyPreview = true;
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
}
void Form1_KeyDown(object sender, KeyEventArgs e)
{
Console.WriteLine("test");
}
Существуют ли какие-либо дочерние элементы в вашей форме?
Ответ 2
Это вызвано перехватом событий дочерними элементами управления в форме.
Если это нежелательно, вам нужно установить свойство KeyPreview родительской формы True
Ответ 3
Как насчет меню, есть ли у вас меню со специальными клавишами быстрого доступа?
У меня возникла проблема, когда скрытое контекстное меню фактически проглотило ключи cetain и не передавало их в какие-либо из событий ключа формы.