以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于 for each 遍历控件  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=133034)

--  作者:饭浇盖
--  发布时间:2019/4/4 12:21:00
--  关于 for each 遍历控件
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



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

--  作者:有点甜
--  发布时间: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


--  作者:有点甜
--  发布时间:2019/4/4 12:55:00
--  
如果还有问题,做个实例发上来测试。
--  作者:饭浇盖
--  发布时间:2019/4/8 11:07:00
--  
我找到了,原来是之前单独设置的时候 样式表窗体afterload 设置了loadfilter导致读取不到另外一个表格样式