Код не будет выполняться, когда приложение не сфокусировано?
private void Form1_KeyDown_1(object sender, KeyEventArgs e) { this.KeyPreview = true; this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown_1); if (textBox1.Text.Equals("1") && e.Control && e.KeyCode == Keys.D1) { textBox1.Text="2"; }
Этот код не будет выполняться, когда я сверну приложение windows form, но только тогда, когда приложение сфокусировано. Как мне это исправить?
Что я уже пробовал:
0x01AA
А) "но только тогда, когда приложение сфокусировано":
Вот как это работает. Приложение получает только события клавиатуры (и другие), когда приложение имеет фокус.
б) это очень плохая идея, чтобы сделать this.KeyDown +=
внутри обработчика событий. Вы должны сделать это один раз, например, в FormLoad whatever.
c.) чтобы решить ваш запрос, вам нужно подключиться к windows api. Что-то вроде этого: Крючки - приложения Win32 | Microsoft Docs[^] соответственно. для c# Это простой в использовании крючки Windows, даже из C# | Microsoft Docs[^]
phil.o
Это было бы квалифицировано для правильного ответа :)
0x01AA
Спасибо :)