Foxtable(狐表)用户栏目专家坐堂 → MainTableChanged 事件中关闭窗口代码无效原因?


  共有11768人关注过本帖树形打印复制链接

主题:MainTableChanged 事件中关闭窗口代码无效原因?

帅哥哟,离线,有人找我吗?
shixia
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:754 积分:6991 威望:0 精华:1 注册:2008/9/2 20:04:00
MainTableChanged 事件中关闭窗口代码无效原因?  发帖心情 Post By:2010/8/28 11:35:00 [显示全部帖子]

下面这段代码在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
      frm.Close
Next

请狐爸看看,MainTableChanged中的代码为何不能执行,是不是项目中其它地方的代码影响这段代码的执行。


 回到顶部
帅哥哟,离线,有人找我吗?
shixia
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:754 积分:6991 威望:0 精华:1 注册:2008/9/2 20:04:00
  发帖心情 Post By:2010/8/28 20:51:00 [显示全部帖子]

then 应该为end if ,这是我写的时候笔误,在狐表中是正确的写法,否则保存不了啊。

在帮助中有一 段帮助:

自动关闭与隐藏

本课的内容仅针对独立型窗口,因为其它类型的窗口并不存在自动隐藏的问题。
我们已经知道,独立窗口是可以共享的,独立窗口一旦打开,切换到其他主表后,窗口仍然是可见的。
有的时候我们并不希望这样,例如有一个设计好的窗口,名为“订单筛选”,我们希望进入订单表的时候,该窗口能够自动打开,而离开订单表的时候,能够自动关闭。
实现这个要求的代码很简单,只需将项目的MainTableChanged事件设为:

If MainTable.Name = "订单" Then
    Forms(
"订单筛选").Show()
Else

    Forms(
"订单筛选").Close()
End
If

 

在实际中,一个主表有多个窗口,在不同的主表之间进行切换时,都希望关闭前一主表的所有窗口,主表一多就用上了elseif 来判断,所以用<>号比=号方便,只要不是表A就关闭表A中所有窗口,从理论上讲用<>号没有错,但为什么就不执行呢?

CZY代码有理,但是如果表A有多个窗口,那么这些窗口名称不可能都等于表名,因此这段代码也不好用。谢谢CZY。


 回到顶部
帅哥哟,离线,有人找我吗?
shixia
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:754 积分:6991 威望:0 精华:1 注册:2008/9/2 20:04:00
  发帖心情 Post By:2010/8/28 22:06:00 [显示全部帖子]

哦,是我没看清楚代码的意思,C版代码有效,不好意思了。另FormStyle在帮助中找不到,那可能是窗口类型的意思,看来版主有私货啊。谢谢

 回到顶部