工作的时候遇到了如下问题:   有一个程序A,在A上有好多个按钮,每个按钮点击时会启动另一个程序,
程序A的FormBolderStyle为None,并且WindowState为Maximized,
当我点击其上的一个按钮启动了一个程序B后,B程序首先显示一个进度窗体X,
当进度完成,
之后窗体X调用close,B程序又打开主窗体Y。。窗体Y没有显示在程序A前边,
而显示在了程序A的后边(窗口X显示在A前),不知道各位有没有遇到过这种情况,
应该怎么解决?PS:先创建窗口Y在关闭窗口X是可以的,但是因为产品众多,此方法太过麻烦,
    而且这个问题在有的电脑上会出现,有的电脑上则不会出现,怀疑是系统
    设置的问题。系统

解决方案 »

  1.   

    我拖了个TextBox在程序A上,并设置TextBox的TabIndex为0,
    既当程序A获取焦点时,TextBox也得到焦点。经过测试,在程序B显示窗口Y后,看到了程序A上的TextBox获取了焦点。
    不知道是不是因为不同系统对窗体焦点管理的设置问题?请教
      

  2.   


    因为我这边有好多个产品,好多的窗口,第一个要找全这所有的窗口
    是比较麻烦的事情,第二个即是找到还要挨处修改,并且把本不想
    总在最前方的窗口,强制设置在最前方,也必然有别的问题出现。
    第三个这个问题只是在一个同事的电脑上出现的,我另外试的两台电脑
    以及我自己的电脑都不会有这种问题,所以我觉得应该能从系统
    的角度查找问题。PS:我怀疑可能是windows都活动窗口等的设置问题,当前活动窗口关闭了,
    有的系统会等到这个进程打开另一个窗口,将这个窗口设置为活动窗口,
    有的则在这个间歇,将其他进程窗口设置为了活动窗口
      

  3.   

    在调用的地方加上:主窗体Y.Owner =B程序试试