我有一个组合框AutoCompleteMode = suggest
并像这样处理 KeyPress 事件:
private void searchBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Return)
{
// do stuff
}
}
然而,它并没有抓住Enter
钥匙。它捕获了其他所有内容,因为自动完成下拉菜单工作得很好。
我也尝试了这里提供的建议:http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/2db0b540-756a-4a4f-9371-adbb92409806,设置表格的KeyPreview
属性设置为 true 并在表单的 KeyPress 事件处理程序中放置一个断点:
private void Form_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = false;
}
然而,即使是表单的处理程序也没有捕获回车键!
有什么建议么?
(如果我禁用自动完成功能,它会捕获 Enter 键)
KeyDown 和 KeyPress 之间的区别
根据您的情况,您最好使用 KeyDown 事件。
void SearchBox_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
{
// Do stuff
}
}
关于 KeyPress 事件的另一个有趣的事情是:如果组合框没有项目,它甚至会捕获 Enter 键并自动完成! :-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)