C#-简单验证-对话框结果

C#-简单验证-对话框结果,c#,C#,我在表单上单击按钮的代码如下: private void btnOK_Click(object sender, EventArgs e) { if (this.txtProjectName.Text == "") { MessageBox.Show("No project name entered", "No Project Name", MessageBoxButtons.OK, MessageBoxIc

我在表单上单击按钮的代码如下:

        private void btnOK_Click(object sender, EventArgs e)
        {

        if (this.txtProjectName.Text == "")
        {
            MessageBox.Show("No project name entered", "No Project Name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            btnOK.DialogResult = DialogResult.None;
        }
        else
        {
            this.btnOK.DialogResult = DialogResult.OK;
            return;
        }
    }
如果文本框中有内容,则表单只会在第二次单击时关闭。是否有方法立即关闭表单,并将DialogResult.OK传递给它的调用者


谢谢

不要设置
this.btnOK.DialogResult
,使用以下命令:

this.DialogResult = DialogResult.OK;

这将设置窗体的名称。表单将关闭,DialogResult将具有正确的值。

可以通过调用this.close()来关闭表单-此处仍然缺少一些内容。虽然GvS也是对的,但我从未注意到仅仅设置DialogResult属性就可以关闭表单,我一直认为您必须在之后调用我的.close()。好吧,我现在就赢一行代码,谢谢!:d这仅适用于模式对话框:“如果窗体显示为对话框,则使用DialogResult枚举中的值设置此属性将为窗体设置对话框结果的值,隐藏模式对话框,并将控件返回给调用窗体。”请参阅@GvS即使在设计器中将OK按钮的DialogResult设置为“OK”,您的建议是否仍有效?我希望能够在我的源代码中通过验证来覆盖它。