以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- MainTableChanged 事件中关闭窗口代码无效原因? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8000) |
-- 作者:shixia -- 发布时间:2010/8/28 11:35:00 -- MainTableChanged 事件中关闭窗口代码无效原因? 下面这段代码在MainTableChanged项目事件中,应该是可以执行的,但是如果表一旦多了,有A、B、C、…表时,用下面这段代码无效: if MainTable.name <> "表A" Then Forms("表A").Close() \'关闭表A对应的独立窗口 elseif MainTable.name <> "表B" Then Forms("表B").Close() \'关闭表B对应的独立窗口 then 没有办法,只好在菜单中切换主表时加下面这段代码: For Each frm As WinForm.Form In Forms 请狐爸看看,MainTableChanged中的代码为何不能执行,是不是项目中其它地方的代码影响这段代码的执行。 |
-- 作者:blackzhu -- 发布时间:2010/8/28 11:57:00 -- if MainTable.name <> "表A" Then Forms("表A").Close() \'关闭表A对应的独立窗口 elseif MainTable.name <> "表B" Then Forms("表B").Close() \'关闭表B对应的独立窗口 then
这个是你直接贴上来还是再写的.
最后结束语怎么是then呢,不是end if 吗? |
-- 作者:czy -- 发布时间:2010/8/28 18:25:00 -- 一楼应该逻辑问题。
不如直接这样?
For Each frm As WinForm.Form In Forms |
-- 作者:czy -- 发布时间:2010/8/28 19:25:00 -- 从一楼的注释来看,似乎这样更合理。
For Each Frm As WinForm.Form In Forms \'返回所有窗口 [此贴子已经被作者于2010-8-28 23:34:58编辑过]
|
-- 作者:shixia -- 发布时间:2010/8/28 20:51:00 -- then 应该为end if ,这是我写的时候笔误,在狐表中是正确的写法,否则保存不了啊。 在帮助中有一 段帮助: 自动关闭与隐藏 本课的内容仅针对独立型窗口,因为其它类型的窗口并不存在自动隐藏的问题。 If MainTable.Name = "订单" ThenForms("订单筛选").Show() Else Forms("订单筛选").Close() End If
在实际中,一个主表有多个窗口,在不同的主表之间进行切换时,都希望关闭前一主表的所有窗口,主表一多就用上了elseif 来判断,所以用<>号比=号方便,只要不是表A就关闭表A中所有窗口,从理论上讲用<>号没有错,但为什么就不执行呢? CZY代码有理,但是如果表A有多个窗口,那么这些窗口名称不可能都等于表名,因此这段代码也不好用。谢谢CZY。 |
-- 作者:czy -- 发布时间:2010/8/28 20:57:00 -- 以下是引用shixia在2010-8-28 20:51:00的发言:
在实际中,一个主表有多个窗口,在不同的主表之间进行切换时,都希望关闭前一主表的所有窗口,主表一多就用上了elseif 来判断,所以用<>号比=号方便,只要不是表A就关闭表A中所有窗口,从理论上讲用<>号没有错,但为什么就不执行呢? CZY代码有理,但是如果表A有多个窗口,那么这些窗口名称不可能都等于表名,因此这段代码也不好用。谢谢CZY。
可能你理解有误,我的代码中没有判断窗口名称,我只是判断不是指定表中的所有窗口,和不是指定表中所有的独立窗口,如果符合这两个条件就关闭窗口,否则不操作。 [此贴子已经被作者于2010-8-28 20:58:31编辑过]
|
-- 作者:czy -- 发布时间:2010/8/28 21:03:00 -- 呵呵,我楼上可能理解错楼主的意思了。 |
-- 作者:shixia -- 发布时间:2010/8/28 22:06:00 -- 哦,是我没看清楚代码的意思,C版代码有效,不好意思了。另FormStyle在帮助中找不到,那可能是窗口类型的意思,看来版主有私货啊。谢谢 |
-- 作者:czy -- 发布时间:2010/8/28 22:13:00 -- 以下是引用shixia在2010-8-28 22:06:00的发言:
哦,是我没看清楚代码的意思,C版代码有效,不好意思了。另FormStyle在帮助中找不到,那可能是窗口类型的意思,看来版主有私货啊。谢谢
一样一样的,版主没有一点私货,这是我自己摸索出来的。 |