以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  历遍控件的顺序  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=105669)

--  作者:lur320
--  发布时间:2017/8/23 21:55:00
--  历遍控件的顺序
我是建了1个trackbar,然后复制了8个。
用下面的命令历遍控件。
但是发现不是按照先后顺序,是跳着历遍的,这个顺序是怎么定的?
For Each c As WinForm.Control In e.Form.Controls
            If Typeof c Is WinForm.trackbar Then
                Dim t As WinForm.trackbar = c
                For Each cl As DataCol In DataTables("or3d").DataCols
                    If t.name & "_pec"=cl.name Then
                     Dim lbl As WinForm.Label
                        lbl = e.Form.CreateControl("completerate" & i,ControlTypeEnum.Label)
                        lbl.text=t.value & "Set "
                        lbl.Left=t.left-50
                        lbl.Top=t.Top+25
                        lbl.AutoSize=True
                        lbl.TopMost=False
                        e.Form.AddControl(lbl)
                        i+=1
因为后面要引用lbl的名字,但是历遍不是按照trackbar的顺序历遍,到时加载的控件也是错误的顺序。


--  作者:有点甜
--  发布时间:2017/8/23 22:17:00
--  

 你trackbar的名字不能命名成规律的?如果 trackbar1、trackbar2、trackbar3

 

 这样你直接用代码不就可以遍历?

 

For i As Integer = 1 to 8

    Dim cl = e.Form.Controls("trackbar" & i)

Next


--  作者:lur320
--  发布时间:2017/8/23 22:46:00
--  
trackbar的名字是和1个表格里面的名字一致的。
例如output_quantity。就和1个表格的col一致,用来抓和行数据。

--  作者:有点甜
--  发布时间:2017/8/23 23:23:00
--  
你要做什么做个例子上来看看。