У меня есть форма, которая покрывает весь экран. У меня есть textbox
, который обычно скрыт, но появляется, когда пользователь щелкает, перетаскивает мышь и затем уходит. После этого пользователь может ввести любое значение в текстовое поле. После ввода, в идеале, пользователь должен иметь возможность щелкнуть за пределами текстового поля, и тогда нормальная служба должна возобновиться.
Под обычным обслуживанием я подразумеваю, что форма должна начать получать все события. Что я сделал до сих пор, так это в событии KeyDown TextBox; когда клавиша Escape нажата, я установил фокус на основную форму следующим образом:
this.Focus(); //where this is mainform.
Но, похоже, это не работает, поскольку Textbox
продолжает получать все ключи. У меня есть обработчик событий KeyDown
для Form
и Textbox
, и я проверил, что все события KeyDown
передаются в TextBox. У меня также есть обработчик события TextBox
Leave, который никогда не вызывается.
Этот TextBox
является единственным элементом управления в форме, а основная форма используется для рисования фигур (если это имеет значение).
Итак, как я могу сделать так, чтобы TextBox
потерял фокус, когда пользователь нажимает за его пределы?