Foxtable(狐表)用户栏目专家坐堂 → 全局代码


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

主题:全局代码

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
全局代码  发帖心情 Post By:2020/4/16 13:02:00 [只看该作者]

老师这个代码怎么写到全局代码,这样写不对。

Public myTable As  String
If Forms("主窗口").Opened  Then
    myTable  = Forms("主窗口").Controls("TabControl1").SelectedPage.text
End If

[此贴子已经被作者于2020/4/16 13:03:58编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/16 14:09:00 [只看该作者]

全局代码只能用来定义变量或者函数。不能直接写代码。

下面放到afteropenproject

If Forms("主窗口").Opened  Then
    myTable  = Forms("主窗口").Controls("TabControl1").SelectedPage.text
End If

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/16 14:22:00 [只看该作者]

试过放到afteropenproject项目事件,切换页面后,得到的值不是当前页面的名称。

放SelectedIndexChanged事件:在窗口的afterload事件也用不了那个变量,页签打开后才有变量,所以也用不了那个变量。

放项目的SystemIdle事件也是这个问题,在窗口的afterload事件也用不了那个变量,页签打开后才有变量,所以也用不了那个变量

[此贴子已经被作者于2020/4/16 14:33:30编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/16 14:39:00 [只看该作者]

全局代码定义的变量,除了项目加载前事件。其它任何地方肯定都可以使用,和vars是完全一样的。具体实体做个例子说明吧

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/16 17:06:00 [只看该作者]

老师,这样把,做示例确实有点多,我要把Forms("主窗口").Controls("TabControl1").SelectedPage.text写到全局代码,随时可以取得这个值,怎么写?

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/16 17:15:00 [只看该作者]

TabControl1,SelectedIndexChanged事件

myTable  = e.Sender.SelectedPage.text

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/16 17:31:00 [只看该作者]

这个试过,比如这样定义:

Vars("editTable")  = Forms("主窗口").Controls("TabControl1").SelectedPage.text

我在独立窗口(需要加入到页签的)afterload事件,用这个代码用不了

With Tables(vars("editTable"))
    .SetHeaderRowHeight(30,30) '标题栏行高
    .DefaultRowHeight  = 32 '所有行高
    .DataTable.SysStyles("Alternate").BackColor = Color.LightCyan '交替行颜色
    .Grid.Styles("Normal").Border.Color = Color.SteelBlue '绘制网格线
    .Appearance.ShowSortIcon = False '隐藏排序标记
    .AllowResizeColumn = False '禁止调整列宽
    .ExtendLastCol = True '补充空白列
    .Sort="序号"
End With

这样逻辑上有问题,页签打开后,才能使用这个变量,我在打开窗口的afterload事件包括窗口是计时器都都用不了。

[此贴子已经被作者于2020/4/16 17:51:27编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/16 17:50:00 [只看该作者]

那就是窗口先打开了,而SelectedIndexChanged事件还没有触发。而切换页签的时候,窗口是已经打开状态了,也不会触发afterload事件。

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/16 17:54:00 [只看该作者]

是这样的,所以这样定义,逻辑也还是有问题,就想到用全局代码来解决,但没写来。

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/16 18:30:00 [只看该作者]

反复想了一下,这个思路应该有问题,只能试试窗口名称和表名称一致,用窗口名来试试了。
到不知道窗口添加到页签后,还能不能获取到窗口名称,明天试试才知道
[此贴子已经被作者于2020/4/16 18:31:42编辑过]

 回到顶部
总数 12 1 2 下一页