Foxtable(狐表)用户栏目专家坐堂 → 动态控件 换行


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

主题:动态控件 换行

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
动态控件 换行  发帖心情 Post By:2022/3/22 0:03:00 [显示全部帖子]

 Dim lbl As WinForm.Button
    If dr("窗口按键_按键") < > Nothing Then       
        Dim Value As String = dr("窗口按键_按键")
        Dim sps() As Char = {"|"}
        Dim Names() As String  = Value.Split(sps)
        For i As Integer = 0 To Names.length - 1
            Dim nm As String = Names(i)
            lbl = e.Form.CreateControl(nm, ControlTypeEnum.Button)
            lbl .Text = nm
            lbl.name = nm
            lbl.Left = 40
            lbl.Top = 36
            lbl.Width = 35
            lbl.Height = 40
            e.Form.AddControl(lbl)           
        Next
    End If

上面的的代码是一字排开的,  希望每行5个超过五个就重新下面增加一排也是五个。如果是30个就是6排按钮
[此贴子已经被作者于2022/3/22 0:02:57编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2022/3/22 20:04:00 [显示全部帖子]

 If dr("窗口按键_功能菜单") < > Nothing Then
        Dim Value As String = dr("窗口按键_功能菜单")
        Dim sps() As Char = {"|"}
        Dim Names() As String  = Value.Split(sps)
        Dim i1 As Integer = 36
        Dim t As Integer = 40
        For i As Integer = 0 To Names.length - 1
            Dim nm As String = Names(i)
            lbl = e.Form.CreateControl(nm, ControlTypeEnum.Button)
            lbl .Text = nm
            lbl.name = nm
            lbl.Left = i * (36)
            lbl.Top = t
            lbl.Width = 35
            lbl.Height = 40
            e.Form.AddControl(lbl)
            If i Mod 5 = 0 Then
                i1 = 36
                t = t + lbl.Height + 10
                'Else
                'i = i1 + 35
            End If
        Next
    End If

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片.jpg
图片点击可在新窗口打开查看




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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2022/3/23 2:20:00 [显示全部帖子]

 Dim s As Integer = 1
        Dim t As Integer = 40
        For i As Integer = 0 To Names.length - 1
            Dim nm As String = Names(i)
            lbl = e.Form.CreateControl(nm, ControlTypeEnum.Button)
            lbl .Text = nm
            lbl.name = nm
            lbl.Left = s
            lbl.Top = t
            lbl.Width = 35
            lbl.Height = 40
            e.Form.AddControl(lbl)
            If i Mod 5 = 0 Then
                s = 2
                t = t + lbl.Height + 2
               Else
                s = s + 35
            End If
        Next

老师,还有一个缺陷,调了几次都不行,就是第一排只有一个,应该是5个才对
    End If
图片点击可在新窗口打开查看此主题相关图片如下:22.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/3/23 2:21:09编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2022/3/23 10:20:00 [显示全部帖子]

 又会多一个出来图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:杜莎夫人.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/3/23 11:18:00编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2022/3/23 11:19:00 [显示全部帖子]

第一排会多一个出来
图片点击可在新窗口打开查看此主题相关图片如下:杜莎夫人.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2022/4/12 12:06:00 [显示全部帖子]

 Dim zcdd As WinForm.Button
Dim Value As String = "我的项目|增加项目|保存清单|导出报价|导出选型|导出汇总"
Dim sps() As Char = {"|"}
Dim Names() As String  = Value.Split(sps)
Dim s As Integer = 2
Dim t As Integer = 5
For i As Integer = 0 To Names.length - 1
    If i <> 0 Then
        If i Mod 2 = 0 Then
            s = 2
            t = t  + 31
        Else
            s = s + 66.5
        End If
    End If
    Dim nm As String = Names(i)
    zcdd = Forms("主窗_菜单").CreateControl(nm, ControlTypeEnum.Button)
    zcdd.Text = nm
    zcdd.name = nm
    zcdd.Width = 66
    zcdd.Height = 30
    'zcdd.Left = e.Form.Controls("菜单页面").Tabpages("客户信息").Width - i * (68)
    zcdd.Left = 2 + i * (68)
    zcdd.Top = e.Form.Controls("菜单页面").Tabpages("客户信息").Height - 90
    e.Form.Controls("菜单页面").Tabpages("客户信息").AddControl(zcdd)
    zcdd.ToolTip = zcdd.Text '动态提示    
Next


理论是向下排列,实际是横向的 
If i Mod 2 = 0 Then
            s = 2
            t = t  + 31
        Else
            s = s + 66.5
        End If

这个好像没生效
从底部返推 是哪里除了问题


 回到顶部