2009-11-27 62 views
0

我有這樣的C#代碼:爲什麼需要按兩次按鈕才能在此模式對話框中工作?

public partial class Continue : Form 
{ 
    public Continue(string colourName) 
    { 
     InitializeComponent(); 
     lblMessage.Text = String.Format("Do you wish to change the colour to {0}", colourName); 
    } 

    private void btnConfirm_Click(object sender, EventArgs e) 
    { 
     btnConfirm.DialogResult = DialogResult.OK; 
    } 

    private void btnCancel_Click(object sender, EventArgs e) 
    { 
     btnCancel.DialogResult = DialogResult.Cancel; 
    } 
} 

它工作正常,但是當彈出對話框它要求我點擊一個按鈕兩次使用它。有沒有人有一個想法,爲什麼?

回答

6

您需要在Click處理程序中設置this.DialogResult而不是btnxxx.DialogResult,或者在處理程序之前設置btnxxx.DialogResult。

窗體的DialogResult在Click方法運行之前設置爲按鈕,因此第一次運行該事件時,窗體的DialogResult保留爲None,但第二次將其設置爲(now-set)按鈕的的DialogResult。

+0

完美,謝謝! – Ross 2009-11-27 12:09:09

相關問題