简单代码C#winform app(visual studio 2010):
这里有一个带有一个文本框的简单表单是一个keyPress事件:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// The keypressed method uses the KeyChar property to check
// whether the ENTER key is pressed.
if (e.KeyChar == (char)Keys.Return)
{
Process.Start("http://yahoo.com", null);
}
}
如果我在文本框中键入一些文本然后点击回车,它就会正常工作,它会打开我的默认网络浏览器并将我带到一个网站。
我需要将文本框更改为autocompletemode = suggestappend和autocompletesource = customsource。然后我就这样填写:
private void Form1_Load(object sender, EventArgs e)
{
AutoCompleteStringCollection s = new AutoCompleteStringCollection();
s.Add("Jon ");
s.Add("2 Jon");
textBox1.AutoCompleteCustomSource = s;
}
当我输入J时,它会自动完成自动完成,但是现在当我点击输入时,它不会触发KeyPress事件。它只是坐在那里。我尝试输入一个断点,当我输入第一个字母J时,它会触发KeyPress事件。然后当我从自动完成源中选择字符串“Jon”然后我点击输入时不再触发该事件。
困惑:)。
答案 0 :(得分:2)
由于自动完成建议下拉列表,似乎正在处理Return键按下 - 您可以始终使用 KeyDown 事件,该事件在此方案中仍会触发。