怎样才能在工具栏中点按钮随意切换模态窗体

aikill 2009-05-22 02:01:43
&&在工具栏的按钮中调用类似这样的代码,每个按钮第一次都能正常运行,第二次就不运行
if _screen.activeform.name # 'frmlogin'
_screen.activeform.release
endif
do form settings &&每个都是独立表单,windowtype为1

怎样才能在工具栏中点按钮随意切换窗体呀?
...全文
99 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-05-22
  • 打赏
  • 举报
回复

原来还是模式问题。
wwwwb 2009-05-22
  • 打赏
  • 举报
回复
呵呵,学习,以后遇到同类问题就知道问题所在了
WWWWA 2009-05-22
  • 打赏
  • 举报
回复
呵呵,自己解决更好,正在看你的代码
十豆三 2009-05-22
  • 打赏
  • 举报
回复
aikill 2009-05-22
  • 打赏
  • 举报
回复
已解决,情况是这样:
原先:表单集的子表单非模式,显示之后不卸载,作为背景,其他独立表单模式,重复点击就有问题。
现在:表单集的子表单模式,显示之后不卸载,作为背景,其他独立表单非模式,重复点击就没有问题。

和表单变量没什么关系,非常感谢。
搞了两个半天才解决,郁闷之极。
aikill 2009-05-22
  • 打赏
  • 举报
回复
十豆三 2009-05-22
  • 打赏
  • 举报
回复
不行上传你的程序到

http://www.access911.net/CSDN/
十豆三 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 aikill 的回复:]
点每一个都能把前一次另一个按钮点击运行的模式表单卸载,并运行自己的表单。但是第二次点的时候就不行。
也就是说如果每个按钮只点一次,程序能个随意切换模式表单,但是第二次就不行了。
[/Quote]

你的意思同一个按不能连继点二次。
但可以点一次按钮A,再点其他按钮,然后再点按钮A

aikill 2009-05-22
  • 打赏
  • 举报
回复
点每一个都能把前一次另一个按钮点击运行的模式表单卸载,并运行自己的表单。但是第二次点的时候就不行。
也就是说如果每个按钮只点一次,程序能个随意切换模式表单,但是第二次就不行了。
十豆三 2009-05-22
  • 打赏
  • 举报
回复
你说的第一次运行正常,当时表单 settings 还没有运行吧,或者说当时没有其他 windowtype为1 的表单在运行吧。
aikill 2009-05-22
  • 打赏
  • 举报
回复
工具栏放在表单集中
十豆三 2009-05-22
  • 打赏
  • 举报
回复
你的 工具栏 是放在表单中,还是独立的?
十豆三 2009-05-22
  • 打赏
  • 举报
回复
如:
表单A为主表单,已运行。

表单A1为子表单,windowtype为1,通过表单A中的按钮又打开了表单A1,那这时表单A中的所有按钮等都不能点击,包括如果表单A中有工具栏,只有当表单A1关闭后,表单A才可以使用。
aikill 2009-05-22
  • 打赏
  • 举报
回复
表单不是工具栏所在表单,是独立的表单,但是工具栏可以点击,我也觉得这个问题比较奇怪
十豆三 2009-05-22
  • 打赏
  • 举报
回复
windowtype = 1

模式表单时,如果当前表单非工具栏所在表单,那工具栏是点不了的。
十豆三 2009-05-22
  • 打赏
  • 举报
回复
或运行你的 frmlogin 表单时:

运行表单时:

Do Form Form1.scx Name MyForm Linked



Public MyForm
Do Form Form1.scx Name MyForm



Public MyForm
Do Form MyForm.scx &&实际此处隐含运行了Name MyForm


其他表单或工具栏关闭此单时:
MyForm.Release
aikill 2009-05-22
  • 打赏
  • 举报
回复
是按钮中的代码根本不执行
aikill 2009-05-22
  • 打赏
  • 举报
回复
不提示错误,调试的时候发现代码根本就不运行,不知道是不是和所显示窗体的windowtype有关,但是为什么第一次都可以运行呢?
而且如果手动把显示的窗体关闭,则又可以运行一次。
十豆三 2009-05-22
  • 打赏
  • 举报
回复
第二次不执行是关闭那句不执行,还是最后一句不执行,还是报错,如果是报错,报会什么错?

关闭指定表单

For Each m.oForm In Application.Forms
If Upper( m.oForm.Name ) == Upper('要关闭的表单Name')
m.oForm.Release()
Endif
Endfor
WWWWA 2009-05-22
  • 打赏
  • 举报
回复
每个按钮第一次都能正常运行,第二次就不运行:
提示什么错误信息

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧