自定义密码Winform

时间:2012-07-10 06:35:45

标签: c# dialog

我正在开发一个c#winform应用程序,我有一个按钮,点击一个要求输入密码的对话框。如果密码正确,则执行按钮下的代码。这是主表单上的代码。

    password pass = new password();
       pass.ShowDialog();
      if (pass.DialogResult == DialogResult.OK)
        {
            if (pass.Password == "12")
            {

以下是我在密码表单中的“确定”按钮上的代码

      private void btnOK_Click(object sender, EventArgs e)
    {
        button1.DialogResult = DialogResult.OK;
    }

问题是密码表单的确定按钮必须单击两次才能正常工作。有什么想法吗?

4 个答案:

答案 0 :(得分:3)

将对话框窗体的AcceptButton属性设置为OK按钮,然后删除btnOK_click事件。

答案 1 :(得分:1)

Button.DialogResult documentation我看到该属性定义了在单击按钮时返回表单的DialogResult 。这意味着您应该在构造函数中使用代码行button1.DialogResult = DialogResult.OK;,或者只是在设计器中设置它,而不是在click-event上。

答案 2 :(得分:0)

this.Close(...)

内拨打btnOK_Click
private void btnOK_Click(object sender, EventArgs e)
{
    button1.DialogResult = DialogResult.OK;
    this.Close();
}

答案 3 :(得分:0)

将密码表单的AcceptButton设置为btnOK。并删除click事件处理程序。您不需要事件处理程序 - 来自文档 - 如果此属性的DialogResult设置为None以外的任何值,而如果通过ShowDialog方法显示父窗体,则单击该按钮将关闭父窗体而不显示不得不挂钩任何事件。单击按钮后,窗体的DialogResult属性将设置为按钮的DialogResult。

MSDN:http://msdn.microsoft.com/en-us/library/system.windows.forms.button.dialogresult.aspx