【背景】主窗体Form1有 两个rdo1、rdo2,分别绘制了两个表格,双击表格各自有一个MouseDoubleClick事件 mdc1、mdc2共同调用一个弹出窗体 Form2Form2 form2 = new Form2();在Form2上有一个button_click事件private void button1_Click(object sender, EventArgs e)
        {
            this.Dispose();//this.close()、this.DialogResult = DialogResult.OK;都是一样的
        }【症状】调试的时候,由于默认选择rdo1.checked = true,所以在mdc1弹出的窗体,关闭,正常当切换到rdo2时,这时mdc2事件弹出的窗体,关闭后,Form2会再出现一次,需要再次点击"关闭",这是怎么回事呢?

解决方案 »

  1.   

    你断点在Form2 的构造函数中,看看是哪里引起的创建
      

  2.   

    rdo1、rdo2的checkedchanged事件if (rdo1.checked)
    {
       += mdc1
    }
    else
       -= mdc1
    if (rdo2.checked)
    {
       += mdc2
    }
    else
       -= mdc2
      

  3.   

    可以绑定同一个checkedchanged
    再改成这样试试:if (rdo1.checked)
    {
      -= mdc1
      -= mdc2
      += mdc1
    }
    else if (rdo2.checked)
    {
      -= mdc1
      -= mdc2
      += mdc2
    }
      

  4.   

    问题找到了,是有其它rdo的checked状态,被设定为了true