代码之家  ›  专栏  ›  技术社区  ›  Ross

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

  •  0
  • Ross  · 技术社区  · 15 年前

    我有这个密码:

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

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

    1 回复  |  直到 15 年前
        1
  •  6
  •   Henk Holterman    15 年前

    你需要设置 this.DialogResult 而不是 btnxxx.DialogResult 在单击处理程序中,或在处理程序之前设置btnxx.dialogresult。

    在运行click方法之前,表单的dialogresult设置为按钮的,因此第一次运行事件时,表单的dialogresult保持为无,第二次设置为(现在设置)按钮的dialogresult。

    推荐文章