Foxtable(狐表)用户栏目专家坐堂 → 关于在窗口或容器中动态添加控件的问题!!


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

主题:关于在窗口或容器中动态添加控件的问题!!

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


加好友 发短信
等级:一尾狐 帖子:455 积分:3756 威望:0 精华:0 注册:2012/2/8 14:19:00
关于在窗口或容器中动态添加控件的问题!!  发帖心情 Post By:2015/7/5 14:14:00 [只看该作者]

现有等表,分别为A-F等各等级(不确定个数),可能是1-6中的任意数个!!
还有:窗口1
等级表:

图片点击可在新窗口打开查看此主题相关图片如下:等级.jpg
图片点击可在新窗口打开查看
要求:根据等级划分A,B,C,D,E,F,G(有可能只其中一项,也有可能为六项,最少1项,最多6项),动态向窗口1中添加按钮控件,控件名及标题为等级表中的内容

请问:如何用代码实现呢???
想要得到的效果:

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

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

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




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


加好友 发短信
等级:一尾狐 帖子:455 积分:3756 威望:0 精华:0 注册:2012/2/8 14:19:00
  发帖心情 Post By:2015/7/5 14:15:00 [只看该作者]


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




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


加好友 发短信
等级:一尾狐 帖子:455 积分:3756 威望:0 精华:0 注册:2012/2/8 14:19:00
  发帖心情 Post By:2015/7/5 14:15:00 [只看该作者]


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

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


加好友 发短信
等级:一尾狐 帖子:455 积分:3756 威望:0 精华:0 注册:2012/2/8 14:19:00
  发帖心情 Post By:2015/7/5 14:15:00 [只看该作者]


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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/5 14:24:00 [只看该作者]

动态添加,动态设置控件的位置和宽高就行

 

http://www.foxtable.com/help/topics/1409.htm

 


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


加好友 发短信
等级:一尾狐 帖子:455 积分:3756 威望:0 精华:0 注册:2012/2/8 14:19:00
  发帖心情 Post By:2015/7/5 14:31:00 [只看该作者]

就是算不出这个公式出来!!!尤其是按钮的宽度是动态的,每个按钮之间假定空出10个像素,如何编写公式呢???
还有:钮的高度也算不出来,3个按钮排一行,每个按钮的高度与设定为的:窗口高度-40,上/下各留出20个像素……头都算大了!如果有第4个按钮,按钮的高度则相应缩小!以排满窗口1,各按钮之间留有10个像素的距离。
[此贴子已经被作者于2015/7/5 14:32:27编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/5 15:15:00 [只看该作者]

Dim ls As List(Of String) = DataTables("表A").GetValues("第一列", "第一列 is not null")
Dim t As Double = 0
Dim l As Double = 0
Dim m As Integer = ls.count Mod 3
For i As Integer = 0 To ls.Count - m - 1
    Dim btn As WinForm.button
    btn = e.Form.CreateControl("button" & ls(i), ControlTypeEnum.Button)
    btn.Text = ls(i)
    If i = 0 Then
        t = 100
        l = 0
    Else If i Mod 3 = 0
        t += 150
        l = 0
    Else
        l += 220
    End If
    btn.width = 200
    btn.height = 100
    btn.Left = l
    btn.Top = t
    e.Form.AddControl(btn)
Next
Dim w As Double = (640 - (m-1)*20) / m
l = 0
t += 150
For i As Integer = ls.Count - (ls.count Mod 3) To ls.Count - 1
    Dim btn As WinForm.button
    btn = e.Form.CreateControl("button" & ls(i), ControlTypeEnum.Button)
    btn.Text = ls(i)
   
    btn.width = w
    btn.height = 100
    btn.Left = l
    btn.Top = t
    l += w + 20
    e.Form.AddControl(btn)
Next

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


加好友 发短信
等级:一尾狐 帖子:455 积分:3756 威望:0 精华:0 注册:2012/2/8 14:19:00
  发帖心情 Post By:2015/7/5 16:21:00 [只看该作者]

非常感谢老师指点!我是新手,这些代码还得好好消化消化!!!

代码中的"t+="怎么理解??

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/5 16:25:00 [只看该作者]

 t += 150 等同于 t = t + 150

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


加好友 发短信
等级:一尾狐 帖子:455 积分:3756 威望:0 精华:0 注册:2012/2/8 14:19:00
  发帖心情 Post By:2015/7/7 0:50:00 [只看该作者]

这个算法帮助好像没有!!!多谢老师指点!!!!

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