我有一些自定义的对话框,其中有一个设置按钮。当我退出 newBlockForm.ShowDialog(this);
时,我希望能获取用户是否按下该按钮的对话框结果。
就像在WinForms对话框中所做的那样。
if(MessageBox.Show("Exit?", "Close UP",
MessageBoxButtons.YesNo)== DialogResult.Yes)
有任何想法我该如何做到这一点吗?
您可以使用对话框表单上按钮的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
}
在设计师中将表单上的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;
}
ShowDialog
方法本身会返回一个 DialogResult
,你可以通过在表单设计器中设置相关按钮的 DialogResult
来自动设置它。