关闭对话框和启动对话框的表单

gss*_*s11 4 c# winforms

我在winforms应用程序中有一个表单.当我按下一个按钮时,它会加载一个带有选项yes和no的模态消息框.

这很好,但是当我按否,我想关闭对话框和启动对话框(发件人)的按钮的表单.

所以app结构是这样的:

主应用程序窗口>按菜单项以启动新表单(连接设置)>按此表单上的按钮以启动消息框.

打开了两个窗口(连接设置表单和对话框),我想要关闭它们.

我怎么能这样做?

dig*_*All 18

在您的是 - 否模态形式中,按下按钮时设置DialogResult,如:

private void noButton_Click(object sender, EventArgs e)
{
    this.DialogResult = System.Windows.Forms.DialogResult.No;
}
Run Code Online (Sandbox Code Playgroud)

单击时,模态窗体将自动关闭

然后,当你打开模态表单时,执行以下操作(在连接设置表单中):

var modalForm = new YesNoForm();
if (modalForm.ShowDialog() == DialogResult.No)
{
    this.Close(); // close the connection setup form
}
Run Code Online (Sandbox Code Playgroud)

编辑

我认为你的yes-no模态形式是自定义的,如果它是一个简单的MessageBox,只需:

var dlgResult = MessageBox.Show("Yes or no ?","?",MessageBoxButtons.YesNo);
if(dlgResult == System.Windows.Forms.DialogResult.No)
{
    this.Close(); // close the connection setup form
}
Run Code Online (Sandbox Code Playgroud)

正如其他答案中已经提出的那样