![](/img/trans.png)
[英]form keydown event interrupt the working of textBox keypress event c#
[英]keyDown event is not working on textbox
我有一个简单的登录表单,我已将它的接受按钮属性设置为“确定”按钮,我有一个文本框“用户名”,我设置它的KeyDown事件进行一些处理。 Ok已启用设置为false。
btnOk.Enbled = false;
this.AcceptButton = btnOk;
txtUsername.KeyDown += new KeyEventHandler(KeyDownHandle);
当我在用户名文本框中按Enter键时,我会进行一些处理,然后将启用的接受按钮设置为true。
private void KeyDownHandle(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
// some processing
btnOk.Enabled = true;
txtPassword.Focus();
}
}
然后我在密码文本框中写密码并按Enter键以便触发“OK.Click”。
但问题是keyDown无法正常工作,因为“接受按钮”。
我该怎么做才能解决这个问题?
编辑:只是想说如果我将acceptButton设置为“none”,问题就解决了,但这不是我想要的。
为什么不从this.AcceptButton = btnOk
删除this.AcceptButton = btnOk
(我想)并将其放在KeyDownHandler
,这样btnOk
只有在启用后才能接受Enter键,并且在插入用户名之后。 所以代码应该是这样的:
btnOk.Enabled = false;
txtUsername.KeyDown += new KeyEventHandler(textBox1_KeyDown);
btnOk.Click += new EventHandler(button1_Click);
private void KeyDownHandle(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
// some processing
btnOk.Enabled = true;
this.AcceptButton = btnOk;
txtPassword.Focus();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.