http://blog.csdn.net/wuyazhe/article/details/5642431

解决方案 »

  1.   

                    this.DialogResult = DialogResult.OK;去掉试试
      

  2.   

    把this.DialogResult = DialogResult.OK;放到close前面去
      

  3.   

    还有Form4.ActiveForm.Close();换成this.Close();
    在Form4这个类里使用Form4.ActiveForm是没有意义的行为
    你点击了Form4里的按钮,那么当前点击按钮的Form4当然就是ActiveForm
      

  4.   

    我猜你这个Form4一开始没有获得焦点,你点击了按钮之后才获得了焦点
    那么先执行了按钮事件,再获取焦点,所以在按钮事件执行的时候Form4.ActiveForm为null,再点的时候,当前窗体已获得焦点,则可以close
      

  5.   

     Form4.ActiveForm.Close();
                    this.DialogResult = DialogResult.OK;改为this.DialogResult = DialogResult.OK;
    Form4.Close();
                    
      

  6.   

    应该是this.DialogResult = DialogResult.OK;
    this.Close();Form4是个类,不能直接执行Form4.Close();
    this代表当前按钮所在的实例
      

  7.   

    同学:
    你点完按钮之后,又显示了一个MessageBox,需要再点一次按钮关闭MessageBox呀,MessageBox不关闭,不会执行后面的代码...
      

  8.   

    把Close去掉,模态窗体用DialogResult就会直接关闭
      

  9.   

    DialogResult = DialogResult.OK 要提前。