.NET TextBox - 处理Enter键

时间:2010-08-24 16:44:38

标签: .net winforms textbox

根据用户在.NET Keys.Enter中输入Enter键(TextBox)执行操作的最佳方式是什么,假设键输入的所有权导致抑制TextBox本身的Enter键(e.Handled = true)?

为了这个问题的目的,假设所需的行为不是按下表单的默认按钮,而是按下应该发生的其他一些自定义处理。

4 个答案:

答案 0 :(得分:49)

添加按键事件并捕获回车键

以编程方式看起来有点像这样:

//add the handler to the textbox
this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(CheckEnterKeyPress);

然后在代码中添加处理程序......

private void CheckEnterKeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
        if (e.KeyChar == (char)Keys.Return)

        {
           // Then Do your Thang
        }
}

答案 1 :(得分:17)

为了将函数与文本框的按键事件链接,请在表单的designer.cs中添加以下代码:

 this.textbox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.OnKeyDownHandler);

现在在相同格式的cs文件中定义函数'OnKeyDownHandler':

private void OnKeyDownHandler(object sender, KeyEventArgs e)
{

    if (e.KeyCode == Keys.Enter)
    {
       //enter key has been pressed
       // add your code
    }

}

答案 2 :(得分:6)

您可以将其放入Form Load事件:

textBox1.KeyPress += (sndr, ev) => 
{
    if (ev.KeyChar.Equals((char)13))
    {
        // call your method for action on enter
        ev.Handled = true; // suppress default handling
    }
};

答案 3 :(得分:0)

如果您希望某些按钮在程序执行时处理Enter ,只需将表单的 AcceptButton 属性指向该按钮即可。

例如:this.AcceptButton = StartBtn;