Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么需要按下两次按钮才能在此模式对话框中工作?_C#_Winforms_Modal Dialog - Fatal编程技术网

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

C# 为什么需要按下两次按钮才能在此模式对话框中工作?,c#,winforms,modal-dialog,C#,Winforms,Modal Dialog,我有一个C#代码: 它工作得很好,但是当对话框弹出时,我需要点击两次按钮才能使用它。有人知道为什么吗?您需要在单击处理程序中设置this.DialogResult而不是btnxxx.DialogResult,或者在处理程序之前设置btnxxx.DialogResult 窗体的DialogResult在Click方法运行之前设置为按钮的DialogResult,因此第一次运行事件时窗体的DialogResult保留为None,但第二次设置为(现在设置)按钮的DialogResult。您需要设置此。

我有一个C#代码:


它工作得很好,但是当对话框弹出时,我需要点击两次按钮才能使用它。有人知道为什么吗?

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


窗体的DialogResult在Click方法运行之前设置为按钮的DialogResult,因此第一次运行事件时窗体的DialogResult保留为None,但第二次设置为(现在设置)按钮的DialogResult。

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

窗体的DialogResult在运行Click方法之前设置为按钮的DialogResult,因此第一次运行事件时,窗体的DialogResult保留为None,但第二次设置为(现在设置)按钮的DialogResult

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;
    }
}