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


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

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

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/28 18:25:00 [显示全部帖子]

一楼应该逻辑问题。

 

不如直接这样?

 

For Each frm As WinForm.Form In Forms
    If frm.TableName <> MainTable.name
        frm.Close
    End If
Next


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/28 19:25:00 [显示全部帖子]

从一楼的注释来看,似乎这样更合理。

 

For Each Frm As WinForm.Form In Forms '返回所有窗口
    If Frm.TableName <> MainTable.Name '如果窗口所在表不等于本表
        If Frm.FormStyle = 2 Then '如果窗口类型等于独立
            Frm.Close
        End If
    End If
Next

[此贴子已经被作者于2010-8-28 23:34:58编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/28 21:03:00 [显示全部帖子]

呵呵,我楼上可能理解错楼主的意思了。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/28 22:13:00 [显示全部帖子]

以下是引用shixia在2010-8-28 22:06:00的发言:
哦,是我没看清楚代码的意思,C版代码有效,不好意思了。另FormStyle在帮助中找不到,那可能是窗口类型的意思,看来版主有私货啊。谢谢

 

一样一样的,版主没有一点私货,这是我自己摸索出来的。


 回到顶部