从自定义对话框获取DialogResult

8

我有一些自定义的对话框,其中有一个设置按钮。当我退出 newBlockForm.ShowDialog(this); 时,我希望能获取用户是否按下该按钮的对话框结果。

就像在WinForms对话框中所做的那样。

if(MessageBox.Show("Exit?", "Close UP", 
     MessageBoxButtons.YesNo)== DialogResult.Yes)

有任何想法我该如何做到这一点吗?
3个回答

13

您可以使用对话框表单上按钮的DialogResult属性,并将其设置为DialogResult枚举,如下所示:

//in your dialog form
button1.DialogResult = DialogResult.OK;

然后在您的主表单中:

//Create an instance of your dialog form
Form2 testDialog = new Form2();

// Show testDialog as a modal dialog and determine if DialogResult = OK.
if (testDialog.ShowDialog(this) == DialogResult.OK)
{
   //do processing
}
else
{
   //do processing
}

5

在设计师中将表单上的AcceptButton属性映射到Set按钮。

或者在Set按钮的单击处理程序中,您可以设置一些值。

        private void HandleOnSetButtonClick(object sender, EventArgs e)
        {
            this.IsSetClicked = true;
            this.Close();

            //or 
            this.DialogResult = System.Windows.Forms.DialogResult.OK;
            this.Close();
        }   

        public Boolean IsSetClicked
        {
           get;
           private set;
        }

0

ShowDialog 方法本身会返回一个 DialogResult,你可以通过在表单设计器中设置相关按钮的 DialogResult 来自动设置它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接