如果表单中的文本框具有自动完成功能,则onKeyPress事件不起作用?

时间:2011-01-20 09:20:11

标签: c# .net winforms .net-3.5

我有一张keypreview true的表单。 OnKeyPress(如果密钥是转义)我正在关闭表单。

稍后我使用表单中的第一个文本框设置autocomplete。自动填充工作正常,但OnKeyPress事件现在无效。如果光标不在具有自动完成OnKeyPress的文本框中,并且仍然关闭转义键上的表单。

请指导我如何兼得? Autocomplete以关闭形式进行逃避。

1 个答案:

答案 0 :(得分:2)

在你的应用程序中,你不应该使用表单事件来关闭(因为表单上的任何控件都可以自己处理OnKeyPress并吞下它),你应该注册热键。

[DllImport("user32.dll")]
private static extern bool RegisterHotKey (int hwnd, int id, int fsModifiers, int vk);

[DllImport("user32.dll")]
private static extern bool UnregisterHotKey (int hwnd, int id);

请参阅herehere