2010-10-12 80 views

回答

6

IMO你只是沒有設置按鈕DialogResult財產,而是直接在btnOK_Click事件設置窗體上:

private void btnOK_Click(object sender, EventArgs e) 
{ 
    if (yeahLetsClose) 
     this.DialogResult = DialogResult.OK; // form will close with OK result 
    // else --> form won't close... 
} 

BTW,AcceptButton屬性來ENTER鍵相關(當你將它按在您的表格上,將按下AcceptButton

1

爲窗體關閉事件添加事件處理程序。 EventArgs參數應該有一個Cancel屬性。

+0

這會工作,但它的缺憾 - 需要在點擊事件,然後您可以在關閉事件讀取設置一個標誌。如果這是唯一的方式,那麼很好 - 但我一直在尋找一些更少的解決方法... – 2010-10-12 13:01:29

+0

這是或改變你的按鈕的工作方式,以便您的處理或者手動關閉或不關閉表單,並且不依賴於AcceptButton自動的東西。 – asawyer 2010-10-12 13:08:22

8

在錯誤增加到:

this.DialogResult = DialogResult.None