Foxtable(狐表)用户栏目专家坐堂 → 关于 for each 遍历控件


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

主题:关于 for each 遍历控件

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


加好友 发短信
等级:幼狐 帖子:124 积分:1419 威望:0 精华:0 注册:2018/7/8 13:04:00
关于 for each 遍历控件  发帖心情 Post By:2019/4/4 12:21:00 [只看该作者]

Dim e=Args(0)
Dim Tablename As String
For Each c As WinForm.Control In e.Form.Controls
    If Typeof c Is WinForm.Table Then '判断控件是否是文本框
        Tablename=e.form.name & "_" & c.Name
        Dim r As DataRow=DataTables("样式表").Find("所属表名 = '" & Tablename & "' and 启用 =true")
        If r IsNot Nothing Then
            Tables(Tablename).SetColVisibleWidth(r("列宽样式"))
        End If
    End If
Next



为什么我窗口中有两个表,只执行了一次?奇怪

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/4 12:53:00 [只看该作者]

试试改成

 

Dim e=Args(0)
Dim Tablename As String
For Each c As WinForm.Control In e.Form.Controls
    If Typeof c Is WinForm.Table Then '判断控件是否是文本框
msgbox(c.name)
        Tablename=e.form.name & "_" & c.Name
        Dim r As DataRow=DataTables("样式表").Find("所属表名 = '" & Tablename & "' and 启用 =true")
        If r IsNot Nothing Then
            Tables(Tablename).SetColVisibleWidth(r("列宽样式"))
        End If
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/4 12:55:00 [只看该作者]

如果还有问题,做个实例发上来测试。

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


加好友 发短信
等级:幼狐 帖子:124 积分:1419 威望:0 精华:0 注册:2018/7/8 13:04:00
  发帖心情 Post By:2019/4/8 11:07:00 [只看该作者]

我找到了,原来是之前单独设置的时候 样式表窗体afterload 设置了loadfilter导致读取不到另外一个表格样式

 回到顶部