我有一个 winform,我在其中调用此方法:
frmIntegrationConfig frm = new frmIntegrationConfig();
DialogResult res = frm.ShowDialog();
res 总是作为“Canceld”返回。如果用户单击“保存”按钮或只是关闭表单并关闭按钮(“X”),我该如何更改它?
我有一个 winform,我在其中调用此方法:
frmIntegrationConfig frm = new frmIntegrationConfig();
DialogResult res = frm.ShowDialog();
res 总是作为“Canceld”返回。如果用户单击“保存”按钮或只是关闭表单并关闭按钮(“X”),我该如何更改它?
定义 frmIntegrationConfig() 窗口时,应将表单上的“AcceptButton”和“CancelButton”属性设置为要触发对话框接受和取消行为的按钮。
您还应该在按钮上设置“DialogResult”属性,以控制按钮导致对话框返回的特定 DialogResult 值。
EG,在您的设计器文件中的所有其他内容中,您需要以如下方式结束:
this.accept = new System.Windows.Forms.Button();
this.cancel = new System.Windows.Forms.Button();
this.other = new System.Windows.Forms.Button();
//
// accept
//
this.accept.DialogResult = System.Windows.Forms.DialogResult.OK;
//
// cancel
//
this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
//
// other
//
this.other.DialogResult = System.Windows.Forms.DialogResult.Ignore;
//
// Form2
//
this.AcceptButton = this.accept;
this.CancelButton = this.cancel;
this.Controls.Add(this.other);
this.Controls.Add(this.cancel);
this.Controls.Add(this.accept);
您需要设置 frmIntegrationConfig 的DialogResult。
您可以通过将Save 按钮的 DialogResult 设置为 DialogResult.OK来做到这一点,或者,我更喜欢这样做,因为很明显发生了什么,在 btnSave_Click() 方法中将表单的 DialogResult 设置为 DialogResult.OK:
private void btnSave_Click(object sender, EventArgs e)
{
// closes form and returns value to ShowDialog
this.DialogResult = DialogResult.OK;
}