我的表單上有一個按鈕btnOK
,其中DialogResult
屬性爲OK
。表單的AcceptButton
屬性設置爲btnOK
。所以如果我點擊按鈕,表單會自動關閉。C#:如何取消在窗體上設置爲「接受」或「取消」按鈕的按鈕的關閉操作?
現在,在btnOK_Click()
方法中,我希望能夠取消關閉操作,例如,如果出現錯誤,我想顯示一個消息框並且不要關閉表單。
我該怎麼做?
我的表單上有一個按鈕btnOK
,其中DialogResult
屬性爲OK
。表單的AcceptButton
屬性設置爲btnOK
。所以如果我點擊按鈕,表單會自動關閉。C#:如何取消在窗體上設置爲「接受」或「取消」按鈕的按鈕的關閉操作?
現在,在btnOK_Click()
方法中,我希望能夠取消關閉操作,例如,如果出現錯誤,我想顯示一個消息框並且不要關閉表單。
我該怎麼做?
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
)
爲窗體關閉事件添加事件處理程序。 EventArgs參數應該有一個Cancel屬性。
在錯誤增加到:
this.DialogResult = DialogResult.None
這會工作,但它的缺憾 - 需要在點擊事件,然後您可以在關閉事件讀取設置一個標誌。如果這是唯一的方式,那麼很好 - 但我一直在尋找一些更少的解決方法... – 2010-10-12 13:01:29
這是或改變你的按鈕的工作方式,以便您的處理或者手動關閉或不關閉表單,並且不依賴於AcceptButton自動的東西。 – asawyer 2010-10-12 13:08:22