以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 动态控件 换行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=175854)
|
-- 作者:yifan3429
-- 发布时间: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编辑过]
|
-- 作者:有点蓝
-- 发布时间: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
|
-- 作者:yifan3429
-- 发布时间: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 
|
-- 作者:有点蓝
-- 发布时间: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
-- 发布时间: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编辑过]
|
-- 作者:有点蓝
-- 发布时间:2022/3/23 8:37:00
--
If i Mod 5 = 0 Then改为
If i > 1 andalso i Mod 5 = 0 Then
|
-- 作者:yifan3429
-- 发布时间:2022/3/23 10:20:00
--
又会多一个出来
此主题相关图片如下:杜莎夫人.jpg

[此贴子已经被作者于2022/3/23 11:18:00编辑过]
|
-- 作者:有点蓝
-- 发布时间: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
|
-- 作者:yifan3429
-- 发布时间:2022/3/23 11:19:00
--
第一排会多一个出来
此主题相关图片如下:杜莎夫人.jpg

|
-- 作者:有点蓝
-- 发布时间: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
|