以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动添加ComboBox控件,一行多个 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120946) |
||||
-- 作者:sunion -- 发布时间:2018/6/26 20:28:00 -- 自动添加ComboBox控件,一行多个 我想在表A的窗口1中自动添加ComboBox控件, 要求是依据“检验项目”列的内容,每个检验项目横向增加3个ComboBox控件,而且控件名称以此命名为ComboBox1,ComboBox2,以此类推。 此主题相关图片如下:截图20180626202333.png 个人测试的结果只能是一个项目横向添加一个控件,代码如何修改呢,请大神指教,谢谢 原始代码如下 Select Case e.DataCol.Name Case "检验项目" If Forms("窗口1").Opened Then Dim nms As List(of String) = DataTables("表A").GetUniqueValues("","检验项目") Forms("窗口1").ClearControl() Dim cnt As Integer For Each nm As String In nms Dim chk As WinForm.Combobox chk = Forms("窗口1").CreateControl("lable1", ControlTypeEnum.Combobox) \' chk.Text = nm chk.Left = 10 chk.Top = cnt * 25 + 10 Forms("窗口1").AddControl(chk) cnt = cnt + 1 Next End If End Select [此贴子已经被作者于2018/6/26 20:33:49编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2018/6/26 20:52:00 -- If Forms("窗口1").Opened Then Dim nms As List(of String) = DataTables("表A").GetValues("检验项目") Forms("窗口1").ClearControl() Dim cnt As Integer For i As Integer = 0 To nms.Count - 1 Step 3 For j As Integer = 0 To 2 If i+j < nms.Count Dim chk As WinForm.Combobox = Forms("窗口1").CreateControl("Combobox" & (i + j), ControlTypeEnum.Combobox) chk.Width = 160 chk.Text = nms(i+j) chk.Left = 10 + j * 180 chk.Top = cnt * 25 + 10 Forms("窗口1").AddControl(chk) Else Exit For End If Next cnt = cnt + 1 Next End If
|
||||
-- 作者:sunion -- 发布时间:2018/6/26 20:59:00 --
代码调试的结果 老师,按照这个代码调试没有到达要的效果, 需要的效果是: A项目:这一行需要3个控件 B项目:这一行需要3个控件 C项目:这一行需要3个控件 D项目:这一行需要3个控件 E项目:这一行需要3个控件 [此贴子已经被作者于2018/6/26 21:02:37编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2018/6/26 21:14:00 -- If Forms("窗口1").Opened Then Dim nms As List(of String) = DataTables("表A").GetValues("检验项目") Forms("窗口1").ClearControl() Dim cnt As Integer For i As Integer = 0 To nms.Count - 1 For j As Integer = 0 To 2 Dim chk As WinForm.Combobox = Forms("窗口1").CreateControl("Combobox" & cnt, ControlTypeEnum.Combobox) chk.Width = 160 chk.Text = nms(i) chk.Left = 10 + j * 180 chk.Top = i * 25 + 10 Forms("窗口1").AddControl(chk) Next cnt = cnt + 1 Next End If
|
||||
-- 作者:sunion -- 发布时间:2018/6/26 21:17:00 -- 达到要求,完美显示,为老师点101个赞! |