为什么按钮需要按两次才能在此模态对话框中工作?

Ros*_*oss 0 c# modal-dialog winforms

我有这个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;
    }
}
Run Code Online (Sandbox Code Playgroud)

它运行正常,但是当弹出对话框时,它需要我点击两次按钮才能使用它.有谁知道为什么?

Raw*_*ing 6

您需要设置this.DialogResult而不是btnxxx.DialogResult在Click处理程序中,或在处理程序之前设置btnxxx.DialogResult.

在运行Click方法之前,表单的DialogResult设置为按钮,因此第一次运行该事件时,Form的DialogResult保留为None,但第二次设置为(now-set)按钮的DialogResult.