以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如何动态增加groubox并且控制其大小  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=100740)

--  作者:rjh4078
--  发布时间:2017/5/17 16:04:00
--  如何动态增加groubox并且控制其大小
如附件

现在能实现动态增加控件
想实现将同表B中相同类型的控件显示在同一个groupbox中
groupbox的宽度和pan1相同或小于一个固定值
groupbox的高度根据里面的checkbox的多少动态变化

现在无法实现groupbox的动态位置调整

[此贴子已经被作者于2017/5/17 16:03:53编辑过]

--  作者:rjh4078
--  发布时间:2017/5/17 16:04:00
--  
为什么看不到附件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb



--  作者:有点色
--  发布时间:2017/5/17 16:22:00
--  
Dim tab1 As WinForm.TabControl=e.Form.Controls("TabControl1")
Dim gb As WinForm.GroupBox
e.Form.Controls("pan1").basecontrol.controls.clear
Dim ay As Integer = 10
For Each na As String In DataTables("表B").GetValues("类型","启用=1")
    gb=e.Form.CreateControl(na, ControlTypeEnum.GroupBox)
    gb.text=na
    e.Form.Controls("pan1").AddControl(gb)
    Dim i As Integer = 0
    Dim x As Integer = 10
    Dim y As Integer = 10
    For Each dr As DataRow In DataTables("表B").Select("启用=1 and 类型 = \'" & na & "\'")
        Dim btn = e.Form.CreateControl(dr("名称"), ControlTypeEnum.CheckBox)
        btn.Text = dr("名称")
        btn.Left = x + i*120
        btn.Top = y
        i = i+1
        If i Mod 2 = 0 Then
            i = 0
            x = 10
            y += 45
        End If
        gb.AddControl(btn)
    Next
    gb.width = e.Form.controls("pan1").width
    gb.height = y + 45
    gb.left = 0
    gb.Top = ay
    msgbox(ay)
    ay = ay + y + 45
Next

--  作者:rjh4078
--  发布时间:2017/5/17 17:24:00
--  
O(∩_∩)O谢谢  我研究下