.NET文本框-处理Enter键
假定对键输入的所有权导致对文本框本身的回车键的抑制(e.Handled=true),根据用户在.NET.NET文本框-处理Enter键,.net,winforms,textbox,.net,Winforms,Textbox,假定对键输入的所有权导致对文本框本身的回车键的抑制(e.Handled=true),根据用户在.NET文本框中输入的回车键(Keys.Enter)执行操作的最佳方式是什么 在本问题中,假设所需的行为不是按下表单的默认按钮,而是其他一些应该发生的自定义处理。添加按键事件并捕获enter键 从编程角度看,它有点像这样: //add the handler to the textbox this.textBox1.KeyPress += new System.Windows.Forms.KeyPres
文本框中输入的回车键(Keys.Enter
)执行操作的最佳方式是什么
在本问题中,假设所需的行为不是按下表单的默认按钮,而是其他一些应该发生的自定义处理。添加按键事件并捕获enter键
从编程角度看,它有点像这样:
//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
}
}
您可以将其放入FormLoad事件中:
textBox1.KeyPress += (sndr, ev) =>
{
if (ev.KeyChar.Equals((char)13))
{
// call your method for action on enter
ev.Handled = true; // suppress default handling
}
};
为了将函数与文本框的按键事件相链接,请在窗体的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
}
}
如果希望某个按钮在程序执行时处理Enter,只需将窗体的AcceptButton属性指向该按钮即可
例如:this.AcceptButton=StartBtn代码>我不明白这个问题。你是在问要执行什么动作,或者问如何执行,或者问如何在事件发生时得到通知?明确的最佳方式是什么都不做。Enter键在UI设计中具有明确的含义,不应被篡改。在一个窗体中任意使用它来更改焦点,在另一个对话框中使用AcceptButton只会让用户感到困惑不已。这里我要讨论的是如何处理与naive实现相关的警告,例如,如果您将数据绑定到Text属性,那么在您处理(比如)KeyDown事件时,数据源尚未使用存储在文本框中的值进行更新@汉斯·帕桑:我听到了。在本例中,它用于与可选(很少使用)其他输入配对的全文搜索框的上下文中。按enter键应执行搜索。这不会抑制默认处理。您只需添加ev.Handled=true代码>更新的帖子。也不是检查回车键的最佳方法。那么什么是最好的方法呢?你不需要在这里强制转换。此外,在文本框上执行数据绑定时,这也无法正常工作,因为数据源在按键和按键处尚未更新。返回capture.Thank。关于多余的演员阵容,你是对的。关于数据绑定的问题,您能否在数据绑定发生后添加按键事件?或者你可以用try/catch来吞下这个异常,对吗?现在演员阵容似乎不再多余;它拒绝在未经授权的情况下编译。