以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于在窗口或容器中动态添加控件的问题!! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71109) |
-- 作者:lmlptj -- 发布时间:2015/7/5 14:14:00 -- 关于在窗口或容器中动态添加控件的问题!! 现有等表,分别为A-F等各等级(不确定个数),可能是1-6中的任意数个!! 还有:窗口1 等级表: 此主题相关图片如下:等级.jpg 要求:根据等级划分A,B,C,D,E,F,G(有可能只其中一项,也有可能为六项,最少1项,最多6项),动态向窗口1中添加按钮控件,控件名及标题为等级表中的内容 请问:如何用代码实现呢??? 想要得到的效果: 此主题相关图片如下:2.jpg |
-- 作者:lmlptj -- 发布时间:2015/7/5 14:15:00 -- 此主题相关图片如下:4.jpg |
-- 作者:lmlptj -- 发布时间:2015/7/5 14:15:00 -- 此主题相关图片如下:5.jpg |
-- 作者:lmlptj -- 发布时间:2015/7/5 14:15:00 -- 此主题相关图片如下:6.jpg |
-- 作者:大红袍 -- 发布时间:2015/7/5 14:24:00 -- 动态添加,动态设置控件的位置和宽高就行
http://www.foxtable.com/help/topics/1409.htm
|
-- 作者:lmlptj -- 发布时间:2015/7/5 14:31:00 -- 就是算不出这个公式出来!!!尤其是按钮的宽度是动态的,每个按钮之间假定空出10个像素,如何编写公式呢??? 还有:钮的高度也算不出来,3个按钮排一行,每个按钮的高度与设定为的:窗口高度-40,上/下各留出20个像素……头都算大了!如果有第4个按钮,按钮的高度则相应缩小!以排满窗口1,各按钮之间留有10个像素的距离。
[此贴子已经被作者于2015/7/5 14:32:27编辑过]
|
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2015/7/5 16:21:00 -- 非常感谢老师指点!我是新手,这些代码还得好好消化消化!!! 代码中的"t+="怎么理解??
|
-- 作者:大红袍 -- 发布时间:2015/7/5 16:25:00 -- t += 150 等同于 t = t + 150 |
-- 作者:lmlptj -- 发布时间:2015/7/7 0:50:00 -- 这个算法帮助好像没有!!!多谢老师指点!!!! |