Я довольно новичок в Visual C#, но долгое время кодировал в Delphi. Я создал форму, в которой есть простая панель, которая скрыта, если вы не набираете конкретный ключ на клавиатуре (у меня есть «KeyPreview», установленный для true для формы, и я использую событие KeyDown для обработки определения того, правильный ли ключ был нажат и сделать панель видимой/невидимой). Под панелью находится компонент webBrowser.Убедитесь, что форма C# имеет фокус, когда она должна быть
Что происходит следующим образом:
Когда моя форма первоначально начинается, у меня есть код для «Показанные» событие, что удостоверяется форма имеет фокус изначально:
private void Form1_Shown(object sender, EventArgs e)
{
if (!Focused)
{
Focus();
}
}
Когда форма сфокусированный на этом этапе, мой код для обнаружения правильного нажатия клавиши, чтобы панель выглядела или исчезала, отлично работает.
Здесь все странно, и я не уверен, что делать. Есть две части, я имею дело с того, что это не так:
Если я нажимаю на другую форму, а затем на строке заголовка моей формы еще раз, чтобы получить фокус на моей форме и попытаться нажатие клавиши, нажатие клавиши обнаружения не работает. Однако, если я нажму на другую форму, а затем вернусь к своей форме еще раз, обнаружение нажатия клавиши для формы будет работать. Что я могу сделать, чтобы убедиться, что это работает каждый раз, когда у меня есть фокус?
Если я нажму на компонент веб-браузера в своей собственной форме, код KeyDown для формы больше не будет принят. Даже если я нажимаю на панель заголовка для формы, событие KeyDown не работает. Что мне нужно сделать, чтобы убедиться, что, если щелкнут компонент в моей форме, моя форма все равно ответит на событие KeyDown?
Заранее благодарим за любые советы.
Можете ли вы показать код для своей панели надписей? –
Вот и все. У меня нет кода для заголовка. У меня просто есть код для события KeyDown для самой формы. – Andre72127