注册 登录
编程论坛 VFP论坛

请问如何让多个顶层表单,指定一个表单在最前面

laibinhua 发布于 2024-01-19 12:00, 384 次点击
请问如何让多个顶层表单,指定一个表单在最前面,我用了这个方法,超过3个时有一个不显示不知什么原因
For lnFor=1 to _VFP.Forms.Count
    if  _VFP.Forms(lnFor).name='【001】'
        pform=lnFor
    ENDIF
ENDFOR

For lnFor=1 to _VFP.Forms.Count
    if  _VFP.Forms(lnFor).name='【002】'
        pform2=lnFor
    ENDIF
ENDFOR

For lnFor=1 to _VFP.Forms.Count
    if  _VFP.Forms(lnFor).name='【003】'
        pform3=lnFor
    ENDIF
ENDFOR

For lnFor=1 to _VFP.Forms.Count
    if  _VFP.Forms(lnFor).name='【004】'
        pform4=lnFor
    ENDIF
ENDFOR


DO case
   CASE _VFP.Forms(pform).AlwaysOnTop=.t.
          _VFP.Forms(pform).AlwaysOnTop=.f.
          _VFP.Forms(pform2).AlwaysOnTop=.t.
          _VFP.Forms(pform3).AlwaysOnTop=.f.
          _VFP.Forms(pform4).AlwaysOnTop=.t.
          _VFP.Forms(pform).AlwaysOnBottom=.t.
          _VFP.Forms(pform2).AlwaysOnBottom=.f.
          _VFP.Forms(pform3).AlwaysOnBottom=.t.
          _VFP.Forms(pform4).AlwaysOnBottom=.t.           
   CASE _VFP.Forms(pform2).AlwaysOnTop=.t.
          _VFP.Forms(pform).AlwaysOnTop=.f.
          _VFP.Forms(pform2).AlwaysOnTop=.f.
          _VFP.Forms(pform3).AlwaysOnTop=.t.
          _VFP.Forms(pform4).AlwaysOnTop=.f.  
          _VFP.Forms(pform).AlwaysOnBottom=.t.
          _VFP.Forms(pform2).AlwaysOnBottom=.t.
          _VFP.Forms(pform3).AlwaysOnBottom=.f.
          _VFP.Forms(pform4).AlwaysOnBottom=.t.           
   CASE _VFP.Forms(pform3).AlwaysOnTop=.t.
          _VFP.Forms(pform).AlwaysOnTop=.f.
          _VFP.Forms(pform2).AlwaysOnTop=.f.
          _VFP.Forms(pform3).AlwaysOnTop=.f.
          _VFP.Forms(pform4).AlwaysOnTop=.t.  
          _VFP.Forms(pform).AlwaysOnBottom=.t.
          _VFP.Forms(pform2).AlwaysOnBottom=.t.
          _VFP.Forms(pform3).AlwaysOnBottom=.t.
          _VFP.Forms(pform4).AlwaysOnBottom=.f.           
   CASE _VFP.Forms(pform4).AlwaysOnTop=.t.
          _VFP.Forms(pform).AlwaysOnTop=.t.
          _VFP.Forms(pform2).AlwaysOnTop=.f.
          _VFP.Forms(pform3).AlwaysOnTop=.f.
          _VFP.Forms(pform4).AlwaysOnTop=.f.  
          _VFP.Forms(pform).AlwaysOnBottom=.f.
          _VFP.Forms(pform2).AlwaysOnBottom=.t.
          _VFP.Forms(pform3).AlwaysOnBottom=.t.
          _VFP.Forms(pform4).AlwaysOnBottom=.t.           
ENDCASE  
2 回复
#2
laowan0012024-01-25 16:30
如果窗体不是最大化的,可以把不需要在上面显示的窗体的visible改成.F.
另外,可以试试一下ZORDER()函数

#3
惬意_甬车2024-02-19 11:32
本老车都是用这两个属性设置表单前后,这两个属性即可以可视化设置,也可以用代码设置,但真没在顶层表单用过,不知可否。
只有本站会员才能查看附件,请 登录
1