Foxtable(狐表)用户栏目专家坐堂 → 如和实现从中心一左一右动态加载label标签


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

主题:如和实现从中心一左一右动态加载label标签

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/13 14:47:00 [显示全部帖子]


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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/13 15:43:00 [显示全部帖子]

比如:

Dim txt As WinForm.TextBox
for i as integer = 0 to 6
txt = e.Form.CreateControl(
"TextBox" & i, ControlTypeEnum.TextBox)
txt.Left = 20 + 
100*i
txt.Top = 
100
e.Form.Controls(
"Panel1"
).AddControl(txt)
next

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/14 20:23:00 [显示全部帖子]

如果数量不多,固定的几个标签,直接指定顺序不就行了


dim vr() as integer = {7,5,3,1,2,4,6}
Dim txt As WinForm.TextBox
for i as integer = 0 to vr.length -1
txt = e.Form.CreateControl(
"TextBox" & vr(i), ControlTypeEnum.TextBox)
txt.Left = 20 + 
100*i
txt.Top = 
100
e.Form.Controls(
"Panel1"
).AddControl(txt)
next

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/16 20:47:00 [显示全部帖子]

有多少个标签?10,20,30?分别要什么效果?画图说明

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/16 21:59:00 [显示全部帖子]

如果只有几个标签,看7楼,先固定好顺序生成即可

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/16 22:05:00 [显示全部帖子]

如果要找规律,也不复杂。12在中间,左边都是奇数递减,右边都是偶数递增、比如9个标签,9是奇数,从左边开始9,7,5,3,1,紧接着是2,4,6,8,还是从左边开始生成标签,从9开始递减到1,接着肯定是2,然后开始偶数递增,直到小于9停止。

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/17 13:34:00 [显示全部帖子]

贴出具体代码

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/18 8:56:00 [显示全部帖子]

Dim label As WinForm.Label
Dim p As WinForm.Panel = e.Form.Controls("Panel1")
Dim w As Integer = p.Width /2
Output.Show(w)
For i As Integer = 0 To 8
    label = e.Form.CreateControl("label" & (i+1), ControlTypeEnum.Label)
    label.AutoSize = False
    label.Width = 20
    label.height = 100
    label.Text = "标签" & (i+1)
    If i Mod 2 = 0 Then
        label.Left = w - i / 2 * (label.Width+20)  - label.Width
        label.Top = 5
        p.AddControl(label)
    Else
        label.Left =w + i / 2 * (label.Width +20)
        label.Top = 5
        p.AddControl(label)
    End If
Next

 回到顶部