代码不全,要看MyDialog这里面干了什么。建议你跟着原来的程序调试一下,看下程序的执行顺序。

解决方案 »

  1.   

    MyDialog 模态窗口是你重写的,真的测试过了吗?对其中“OK”那个按钮处理了吗?
      

  2.   

    MyDialog的close函数中要加
    this.DialogResult = DialogResult.OK
      

  3.   

    哥们,不是吧,有没有搞错.
    Close函数本来.net就写好的.你重写?我没发现原来代码重写.
      

  4.   

    行倒是行,但是怎么没发现原来源码重写这个.
    源码就是我们论坛中 C#版高频提问和解答汇总 这里:http://bbs.csdn.net/topics/360140208
      

  5.   

    你仔细看人家窗体的属性,里面有AcceptButton和CancelButton
    如果设置了这两个,则Close不需要重写
      

  6.   

    或者你自己在窗体里定义个public bool变量,点OK时设置它为true,主窗体里判断它,也行
    就不需要DialogResult了
      

  7.   

    谢啦...没注意到...太久没有接触winform了...
      

  8.   


    不对,哥们...他代码没有设置...我调试过,
    this.AcceptButton null 没有设置...
      

  9.   

    一般我都不用DialogResult,而是用自定义变量
    因为有些时候点了确定不想让窗体关闭,然后关闭的时候还要判断之前是否点过确定
      

  10.   

    而且我刚调试过,设置 AcceptButton没有效果,倒是 设置刚DialogResult有用,奇怪了...在哪里设置...
      

  11.   

    比如我开一个socket的侦听,侦听的端口号我想在程序里能改
    然后在关闭的时候,我要判断哪些东西改过,改过参数的要重启线程,没改的不用重启.
      

  12.   

    那就看看button1里的属性,是否把DialogResult设置为OK了,这样代码里就不用设置了
      

  13.   

    哥们的意思是写一个程序,监听源代码改了哪些?
    我的意思是说,有些时候,并不是只返回一个DialogResult就够用的.
    因为DialogResult虽然有许多值,但是一次只能返回其中一种
    如果需要在主窗体中判断子窗体中到底哪些东西改了,哪些东西没改,那么还是要自定义public变量来解决
      

  14.   

    哦,想起来了
     AcceptButton和CancelButton是用来定义快捷键的
    按回车相当于按了 AcceptButton,按ESC相当于按了CancelButton
      

  15.   


    对呀,当时我也被你搞晕了,呵呵.
    最后发现在 MainForm.Designer.cs 文件中,设置 button1这样: this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
    坑爹.遗漏了这个文件.他直接写在代码就懂了.
    谢啦,哥们.
      

  16.   

    打错.是在 MyDialog.Designer.cs文件中.
      

  17.   

    不要手动修改Designer文件
    看16楼,在button的属性里改