回 帖 发 新 帖 刷新版面

主题:在带有菜单的顶层表单中运行另一个表单的问题?

主表单(表单一)作为顶层表单,有菜单。
选择一个菜单项后,执行另一个表单(表单二)(在顶层表单中)。
我想在执行表单二后,表单一的菜单项不可用,该怎么做?
前提是:
一、表单二不能用模式表单,因为那样无法调整表单一的大小了,表单二比较大。
二、我不想把表单一设为最大化。

或有什么更好办法解决此类问题,请指教。

回复列表 (共14个回复)

沙发

1.把表单二做成浮动表单,即ShowWindow属性为0或1,且DestTop属性值为.T.
2.在调用菜单之前设一public变量,例如lSkip,初值为.F.,在相应菜单项的skip for表达式书写变量名lSkip,当调用表单二时,在表单二的Init事件中,lSkip=.t.,在表单二的Destroy事件中恢复,lSkip=.f.

板凳

禁用菜单:

表单二的Init事件中

SET SKIP OF MENU 你的菜单名 .T.

3 楼

恢复菜单的使用:

表单二的 Destroy 事件中

SET SKIP OF MENU 你的菜单名 .F.

4 楼

菜单是独立的特殊窗口,它不属于任何窗口。它只是作为子窗口显示在某个窗口中!

5 楼

嗯,谢谢老师! 
还有一个小问题,我在调用表单二时,我把表单二的AUTOCENTER设为.T.后,执行,表单二的顶部就是标题栏被表单一的菜单给挡住了,无法移动,把表单二的AUTOCENTER设为.F.后,标题栏出现了,但不居中,在表单一的左上方. 
怎么样才能让表单二的标题栏不被遮挡,又能居中,前提是在顶层表单中. 
谢谢!

6 楼

[quote]1.把表单二做成浮动表单,即ShowWindow属性为0或1,且DestTop属性值为.T.
[/quote]
这样调整后,表单二没有在表单一中,是怎么回事?
我想让表单二在表单一中.

7 楼

表单二的顶部就是标题栏,被表单一的菜单给挡住了。
如果是居中影响的,那只好用代码校正了!

在 init 事件中:
this.AUTOCENTER=.T
this.top=this.top+20

8 楼

是这样。
为什么拖动表单一的上边界,表单二也跟着动,能不能让表单二不动?

9 楼

[quote]禁用菜单:

表单二的Init事件中

SET SKIP OF MENU 你的菜单名 .T.[/quote]
老师,我试了,不行呀,还是没有禁用,我菜单名是  主菜单,这样写的在表单二的INIT中:
SET SKIP OF MENU 主菜单 .T.
,执行表单二后,菜单还是可以使用,也没有变灰,是代码写错了吗?

10 楼

行了,是这样的:
表单一:INIT
DO 主菜单.MPR WITH THIS,"ZCD"
表单二:INIT
SET SKIP OF "ZCD" .T.

但还有一点不明白,一直没搞懂 DO XXX.XXX WITH XXX , XX
这个逗号后面的部分有什么作用,有时是.T.,现在又是"XXX".

我来回复

您尚未登录,请登录后再回复。点此登录或注册