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


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

主题:动态控件 换行

帅哥哟,离线,有人找我吗?
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编辑过]

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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/22 8:37: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)
dim i as integer = 40
dim t as integer = 36
        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
            lbl.Top = t
            lbl.Width = 35
            lbl.Height = 40
            e.Form.AddControl(lbl)          
if i mod 5 = 0 then
i = 40
t = t + 40+10
else
i = i + 35 + 10
end if
        Next
    End If

 回到顶部
帅哥哟,离线,有人找我吗?
yifan3429
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
图片点击可在新窗口打开查看




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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/22 20:23:00 [只看该作者]

        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 = i1
            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
                i1 = i1 + 35
            End If
        Next
    End If

 回到顶部
帅哥哟,离线,有人找我吗?
yifan3429
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/23 8:37:00 [只看该作者]

If i Mod 5 = 0 Then
改为

If i > 1 andalso i Mod 5 = 0 Then

 回到顶部
帅哥哟,离线,有人找我吗?
yifan3429
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/23 10:22:00 [只看该作者]

            e.Form.AddControl(lbl)
if i = 0 then 
s = s + 35
else
            If i Mod 5 = 0 Then
                s = 2
                t = t + lbl.Height + 2
               Else
                s = s + 35
            End If
end if
        Next

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


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

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

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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/23 11:34:00 [只看该作者]

For i As Integer = 0 To Names.length - 1
    If i <> 0 Then
        If i Mod 5 = 0 Then
            s = 2
            t = t + lbl.Height + 2
        Else
            s = s + 35
        End If
    End If
    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)
Next

 回到顶部
总数 12 1 2 下一页