我一直在C#中创建此登录表单,我想在用户点击提交或按回车键/返回键后立即“提交”所有数据。
我一直在使用KeyEvents测试一下,但迄今为止没有任何工作。
void tbPassword_KeyPress(object sender, KeyPressEventArgs e)
{
MessageBox.Show(e.KeyChar.ToString());
}
以上代码用于测试事件是否在第一时间起作用。 它工作得很好,当我按'd'时它会显示'd'当我按'8'时它会显示'8'但按下输入不会做任何事情。
所以我虽然这是因为输入并没有真正绑定到一个角色,但它确实显示了退格,它工作得很好,所以让我很困惑为什么它没有注册我的回车键。
所以问题是: 如何记录输入/返回键?为什么它不能正确记录按键现在就像它应该的那样?
注意:我已将事件放在文本框中
tbPassword.KeyPress += new KeyPressEventHandler(tbPassword_KeyPress);
因此当按下输入按钮时它会激活当选择文本框时(这当然是整个时间)可能与执行代码有关。
答案 0 :(得分:7)
您是否将按钮定义为默认操作?
如果是,那么该控件将吞下Enter键。
也许这就是你的答案。您需要在提交按钮上将DefaultAction属性设置为true。
答案 1 :(得分:0)
尝试使用KeyDown事件。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("Enter");
}
}
答案 2 :(得分:0)
也许您应该使用表单的“AcceptButton”将其设置为提交按钮。认为这就是你真正的......
答案 3 :(得分:0)
您遗漏了一个重要的位,您必须将Handled
属性设置为true或false,具体取决于条件......
void tbPassword_KeyPress(object sender, KeyPressEventArgs e) { MessageBox.Show(e.KeyChar.ToString()); if (e.KeyCode == Keys.Enter){ // This is handled and will be removed from Windows message pump e.Handled = true; } }
答案 4 :(得分:0)
试试这个
textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyPress);
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
MessageBox.Show("Enter Key Pressed", "Enter Key Pressed", MessageBoxButtons.OK);
}
}
答案 5 :(得分:0)
转到你的表格......
在基本形式中更改此
FormName.AcceptButton = buttonName;
这会读取自动输入的密钥日志文件。
如果您不希望用户看到接受按钮
,则可以执行此操作buttonName.Visible = false; FormName.AcceptButton = buttonName;
AcceptButton会自动从键盘上读取回车键