winform中,设置form1为启动主窗体,在初始化时,用代码form2.show()来显示另一个窗体(不是showDialog,因为不能用这个),然后我希望显示form2后,用什么代码挂起当前form1的进程,就是不让他继续执行剩下的代码,然后我在form2中处理完一些事之后,通过代码恢复form1继续执行。希望大家提供方法,谢谢。(注意因为需求不能用showDialog,不然我就不来问了)

解决方案 »

  1.   

    忘了说,我自己用的方法是在form2.show()后,用一个无限循环去执行System.Threading.Thread.Sleep(1000);然后当我完成后改变全局参数终止这个无限的for循环,但不想用这方法,有没有更好的,form1一定要是主窗体。
      

  2.   

    你设个标志位什么的,执行完form2把标志位置回去试试
      

  3.   

    什么标志?不懂,我就是想form1停止运行,让form2能正常操作,操作完后再让form1继续工作。private Form2 form2 = new Form2();
    public Form1()
    {
        InitializeComponent();
        显示form2
        //让form1停止不再运行
    }
      

  4.   

    想不明白为什么不用showDialog,或者你应该改变的是你的思路
      

  5.   

    我也知道用ShowDialog好,但我的form2窗体是Win32.UpdateLayeredWindow读png图的异形窗体(因为这个窗体无法显示其它控件,所以我要再加一个有控件的透明窗体form3在他上面,form3是写东西的)。就是这情形,你们知道为什么不能用ShowDialog了吧,用ShowDialog显示form2的话,form3是写不了东西的因为焦点在form2上,需要都是有必要的。
      

  6.   

    CSDN终于回复正常了,看看还有没办法?
      

  7.   

    是不是用 multithreading (多线程)来解决你的问题。