У меня есть .NET TextBox с функцией автозаполнения на форме. В форме также определены AcceptButton
и CancelButton
. Если я пытаюсь зафиксировать предложение с помощью клавиши Enter
или закрыть с помощью клавиши Esc
, моя форма закрывается.
Моя идея состоит в том, чтобы создать свое собственное текстовое поле, наследуемое от TexBox
, и захватить клавиши Enter
и клавишу Escape
, но только тогда, когда виден интерфейс автозаполнения. Как я могу узнать, когда список автозаполнения виден?
public class MyTextBox : TextBox
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (IsOnAutoComplete())
{
if (keyData == Keys.Enter || keyData == Keys.Return)
{
return true;
}
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
Другими словами, знаете ли вы, как я могу реализовать метод IsOnAutoComplete()
? Имеет ли текстовое поле какие-либо события , чтобы заметить это?
Любое другое решение будет оценено. Заранее спасибо.