C# keydown не работает, когда у меня есть кнопка
Я видел в интернете эту проблему, и решение состояло в том, чтобы установить "KeyPreview" на "true". Я пробовал это, и это все еще не сработало. Почему, когда я нажимаю одну из стрелок (вниз, вверх, влево или вправо), ярлык все еще не появляется?
Обновленный:
Спасибо вам за ваш ответ, Питер Вегтер, но он все равно не работает.
Чтобы было понятно: обычное письмо делает работает и заставляет этикетку выпендриваться. Все дело в том, что стрелки (вниз, вверх, влево или вправо) не работа.
Я думаю, что знаю почему - "фокус" находится на кнопке, а не на форме.
Я искал это в интернете и обнаружил, что мне нужно сделать так, чтобы "KeyPreview" был установлен как "true". Я сделал это, и все равно он не показывает ярлык, когда я нажимаю стрелки, только когда я нажимаю буквы.
Если я уберу кнопку, стрелки исчезнут. делать работа.
Что я уже пробовал:
public partial class Form1 : Form { public Form1() { InitializeComponent(); label1.Visible = false; this.KeyPreview = true; this.KeyDown += Form1_KeyDown; } private void Form1_KeyDown(object sender, KeyEventArgs e) { label1.Visible = true; } private void button1_Click(object sender, EventArgs e) { } }
#realJSOP
Установите точку останова в обработчике событий KeyDown и посмотрите, обрабатывает ли код вообще это событие.
Peter Vegter
Моя ошибка, я обновил свой ответ. Это должно сработать.
Peter Vegter
Я снова попробовал "Решение 1" с несколькими кнопками и метками на форме, а также с различными платформами .NET, и это решение по-прежнему хорошо работает со мной.
Может быть, вы ошиблись где-то еще в своем коде?