用一个顶层表单调用另一个表单,并关闭顶层表单:
thisform.release
在顶层表单的destroy事件中写入:
do form 另一个表单.scx
出现以下问题:
如果这个另一个表单是模式表单,那么调用表单就不会被释放,而要等到这个另一个表单(模式表单)关闭后才能被释放,我想要这个表单是模式表单,而且当它运行时顶层调用表单就会被关闭应该怎么办?
还有,在这个模式表单上放置grid表格控件,表格数据中有备注型数据,表单运行后,双击该字段相应数据弹出的备注字段编辑窗口被隐藏或遮挡,如果不是模式表单就能看到该弹出窗口,请问在不改变表单运行模式情况下,如何才能让编辑窗口可见?
------解决方案--------------------------------------------------------
问题1:应该是你的 另一个表单 的属性ShowWindow=1(在顶层表单中),因为你的 另一个表单 要存在于 顶层表单中。所以要把你的 另一个表单 的属性ShowWindow 改为 2。
问题2:与问题1有关,
当表单属性ShowWindow 不是1时,不存在问题2。
当表单属性ShowWindow=1,WindowType=1时,要这样:
在表格的memo字段列的text1的dblclick 事件写如下代码,就可以实现了:
MODIFY MEMORY (this.Parent.ControlSource)
但要注意:当表单属性Desktop=.T.时,编辑框将被表单遮住,反之不被遮住。
------解决方案--------------------------------------------------------
如果是:VFP8.0 或 VFP9.0
1、菜单所在表单:顶层表单(表单的ShowWindow为2)
2、其他子表单:ShowWindow为1 (即“在顶层表单中”),并且WindowsType的值为1(即模式表单)。
这样当执行程序时,菜单和主表单为活动的,当执行一个子表单时,菜单为不活动,子表单退出后,主表单及菜单变为活动。
如果是:VFP6.0
可以设置菜单中“跳过(Skip For)”再结合变量即可实现菜单的可用或不可用。
跳过设置方法:在菜单设计窗口,点击最后面选项下的小按钮,弹出选项对话框,其中有一项“跳过(Skip For)”的选项,如果“跳过(Skip For)”表达式的值是.T.,则菜单不可用。这个表达式可以是个全局变量或全局数组。)