0

我有一个 winform,我在其中调用此方法:

frmIntegrationConfig frm = new frmIntegrationConfig();
DialogResult res = frm.ShowDialog();

res 总是作为“Canceld”返回。如果用户单击“保存”按钮或只是关闭表单并关闭按钮(“X”),我该如何更改它?

4

2 回答 2

1

定义 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);
于 2014-05-21T13:27:44.583 回答
1

您需要设置 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;       
}
于 2014-05-21T13:28:03.493 回答