AutoCompleteSource会停止KeyPress事件吗?

时间:2010-08-10 19:09:27

标签: c# windows

简单代码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”然后我点击输入时不再触发该事件。

困惑:)。

1 个答案:

答案 0 :(得分:2)

由于自动完成建议下拉列表,似乎正在处理Return键按下 - 您可以始终使用 KeyDown 事件,该事件在此方案中仍会触发。