有两个画面一个主画面,一个子画面。子画面现在用show的方式打开。子画面的任务栏是隐藏的。任务栏只有主画面的任务栏。主画面和子画面可以相互切换。现在将子画面至于主画面前面然后点击程序以外的地方,比如说打开一个EXCEL。然后我再点击主画面的哪个任务栏,这个时候主画面出现了,但是子画面还是显示在最后面。我想让这个时候子画面还是显示在主画面前面要怎么做?

解决方案 »

  1.   

    你的子窗体设置下Topmost = true
      

  2.   

    都说了正常状态下 主画面和子画面可以自由切换,就是说点击子画面,子画面置前,点击主画面主画面置前,  不能设置topmost
      

  3.   

    那在你的主窗体的Activated事件里处理,把子窗体Active
      

  4.   

    加个全局静态变量,如果主窗体失去焦点,置False,如果子窗体获得焦点,置true,然在在主窗体的Activated里判断,如果这个变量是False的话,把子窗体Active
      

  5.   

    可以子画面获得焦点了应该用什么事件来判断呢?我用了ENTER 和LEAVE事件完全不响应。ACTIVATE又有异常
      

  6.   

    Activated会有异常?什么异常?
      

  7.   


    还是不行  ,当子画面获得焦点的时候。我去点其他程序,这时候只会触发子画面的Deactivate事件不会去触发主画面的Deactivate事件,这时候静态变量还是true
      

  8.   

    这只是个思路。你自己可以再想想出现的情况完善一下。
    其实无非就是要判断2个窗体都没获得焦点的情况的时候让这个变量为False;
    实在没办法就加2个变量分别记录着2个窗体的状态。然后再判断就是了。
      

  9.   


    这个简单啊,在子窗体的Deactivate事件里,加个线程,sleep个0.5秒左右后把变量置为false。