2
我在窗体上有一个带有自动完成功能的.NET TextBox。该表格还定义了AcceptButton
和CancelButton
。如果我尝试使用Enter
键提交建议,或者以Esc
关闭下拉菜单,我的表单会关闭。WinForms文本框自动完成事件
我的想法是创建我的自定义文本框从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()
方法吗?有没有文本框事件注意到这一点?
任何其他解决方案,将不胜感激。提前致谢。
当自动完成列表显示时,您在MyTextBox WndProc方法上接收到什么消息?也许你可以捕获该消息 – 2011-12-14 16:48:02
其实这是我的问题:-) – 2011-12-14 16:57:40