use*_*775 4 c# textbox autocomplete onkeydown
在Winforms中,我有一个文本框,其中AutoCompleteMode设置为SuggestAppend,并设置了AutoCompleteCustomSource.当用户键入一些字母时,显示建议列表.如果通过鼠标单击选择此列表中的项目,则会为ENTER键引发包含文本框的表单的KeyDown事件.
使用鼠标选择建议项目时是否有可能不引发此事件?
自动完成功能有一些从其原始设计用途(Internet Explorer的地址框)继承的怪癖.这包括单击列表中的项目时发出Enter键.在IE的地址栏中按Enter键可以导航到输入的URL.
你无能为力,原生界面(IAutoComplete2)只有很少的选项来配置它的工作方式.它通过伪造Windows消息将键击戳到文本框中.哪种方法可以区分,实际的密钥不会下降.你可以通过pinkeoking GetKeyState()检查一下,像这样:
private void textBox1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyData == Keys.Enter && GetKeyState(Keys.Enter) < 0) {
Console.WriteLine("Really down");
}
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern short GetKeyState(Keys key);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8329 次 |
| 最近记录: |