请问c#的winform中最后一个文本框的回车等同于点击下个按钮,他们触发的事件是一样的,需要分别写代码吗?

如果不需要,该怎么实现?
2025-03-01 23:33:21
推荐回答(3个)
回答1:

问题没怎么看明白,按照我的理解是不是这个意思:
例如有一个登录窗体,上面在有一个文本框txtPassword,用于用户输入密码,还有一个按钮btnOK,用于用户输入用户名和密码后点击按钮登录系统,现在你已经把按钮事件写好了:
private void btnOK_Click(object sender, EventArgs e)
{
UserLogin(this.txtUserName.Text.Trim(),this.txtPassword.Text.Trim());
............ //根据输入的用户名和密码登录系统事件
}
现在你在实现在密码输入框按下回车键同样触发“根据输入的用户名和密码登录系统事件”,这时不需要再重写一次,只需要设置密码输入框的KeyDown事件:
private void txtPassword_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
this.btnOK_Click(sender, e);
}
}
不知道你问的是不是这个意思

回答2:

你可以把执行触发事件的函数剥离出来,最后一个文本框的回车和某个按钮点击时调用这个函数
void commonFunc()
{
//执行代码
}
private void btnOK_Click(object sender, EventArgs e)
{
commonFunc();
}

private void txtPassword_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
commonFunc();
}
}

回答3:

肯定要分别写代码了啊 ,这是两个完全不同的触发器,虽然执行的动作都一样!