2009-11-27 4 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

클릭 핸들러에 btnxxx.DialogResult이 아닌 this.DialogResult을 설정하거나 핸들러 앞에 btnxxx.DialogResult를 설정해야합니다.

폼의 DialogResult는 Click 메서드가 실행되기 전에 단추로 설정되므로 처음에는 이벤트가 실행될 때 Form의 DialogResult가 None이지만 두 번째로 (지금 설정된) 단추의 DialogResult.

+0

완벽한, 감사합니다! – Ross

관련 문제