繁体   English   中英

将 arguments 传递给按钮单击事件 function

[英]Passing arguments to a Button click event function

我有一个由用户名文本框、密码文本框和登录按钮组成的表单。 填写密码文本框后,我想在按回车后激活登录按钮。 我不知道如何调用 function。

private void Login_button_Click(object sender, EventArgs e)

 {
        if (string.IsNullOrEmpty(IntrarePassword.Text) || string.IsNullOrEmpty(IntrareUser.Text))
            return;
        Form2 form2 = new Form2();
        form2.Username = IntrareUser.Text;
        form2.Show();

    }

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

Login_button_Click 参数应该是什么?

最简单的解决方案是注册密码控件的 KeyPress 事件,过滤按下的键,然后更新按钮的 Enabled 属性。

Msdn 是你的朋友 ^^: https://docs.microsoft.com/en-us/dotnet/framework/winforms/how-to-handle-keyboard-input-at-the-form-level

编辑:误解了你的问题,我的错。 由于您不使用 arguments,因此可以传递 null/default 或将代码提取到两个事件处理程序都可以调用的新无参数方法中。

将表单的 AcceptButton 设置为 Login_button ,它会在按下回车键时被点击。 在表单的 Load 事件中输入此代码:

 this.AcceptButton = Login_button;

如果您希望在按下回车键后启用登录按钮,请执行以下操作:

在您的表单中,从 Properties 选项卡将 Login_button 的 Enabled 属性设置为 false。

将您的代码更改为:

private void Login_button_Click(object sender, EventArgs e)
{
    if (string.IsNullOrEmpty(IntrarePassword.Text) || string.IsNullOrEmpty(IntrareUser.Text))
        return;
    Form2 form2 = new Form2();
    form2.Username = IntrareUser.Text;
    form2.Show();
}

private void IntrarePassword_KeyDown(object sender, KeyEventArgs e)
{
   if (e.KeyCode == Keys.Enter)
        Login_button.Enabled = true;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM