以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何获取某个面板里的所有指定类型的控件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85372) |
-- 作者:rjh4078 -- 发布时间:2016/5/24 13:27:00 -- 如何获取某个面板里的所有指定类型的控件 如题 我想动态刷新控件 现在要求在生成新的控件之前将当前panel中的label控件全部删除 |
-- 作者:大红袍 -- 发布时间:2016/5/24 14:18:00 -- For Each o As Object in 控件.Children
或者
For Each o As object in 控件.BaseControl.Controls |
-- 作者:rjh4078 -- 发布时间:2016/5/24 20:28:00 -- 请教下各位老师 我想在一个panel里动态添加lable 比如 一排一个或者一排N个 N排M个 如何控制呢 我现在生成的 只能指定left top 排列很混乱 |
-- 作者:大红袍 -- 发布时间:2016/5/24 20:31:00 -- 方法一:盒子思维,一行n个放在一个panel里,设置好停靠;n行n个panel,放在一个大panel里,设置好停靠。
方法二:直接控制left、top,只要计算精确,不会混乱的。 |
-- 作者:rjh4078 -- 发布时间:2016/5/26 20:26:00 -- 方法2中如何控制left top呢? 比如 如何控制一排按照我设计的个数排 ? 按钮个数是不确定的 比如我想一排2个 这个要怎么来写
我找到之前一个案列的代码是这样的 但是套过来用 达不到效果 按钮会重叠在一起 或者互相覆盖了 Dim tab1 As WinForm.TabControl e.Form.Controls("tab1").basecontrol.ItemSize=new Size(60,55)
btn.BackColor=Color.white
核心代码是 btn.Left = 35+(i Mod 4)*280btn.Top = 35+(i mod 4)*95 但是我套过来用 发现不行 比如有4个按钮 只能显示2个 互相重叠在一起了
|
-- 作者:大红袍 -- 发布时间:2016/5/26 20:37:00 -- 如果确定个数,那样好办啊,记录个数就行了
Dim count As Integer = 0 Dim x As Integer = 0 Dim y As Integer = 0
x += 控件.Width + 20 If count >0 AndAlso count mod 4 = 0 then x = 0 y = y + 控件.Height + 20 End If 控件.left = x 控件.top = y count += 1
|
-- 作者:rjh4078 -- 发布时间:2016/5/26 20:44:00 -- 以下是引用大红袍在2016/5/26 20:37:00的发言:
如果确定个数,那样好办啊,记录个数就行了
Dim count As Integer = 0 Dim x As Integer = 0 Dim y As Integer = 0
x += 控件.Width + 20 If count >0 AndAlso count mod 4 = 0 then x = 0 y = y + 控件.Height + 20 End If 控件.left = x 控件.top = y count += 1
这个不能控制换行把 比如大于4行 就换一行重新生成 而且你这个没有和变量count挂一起
|
-- 作者:大红袍 -- 发布时间:2016/5/26 20:45:00 -- 分开啊 |
-- 作者:rjh4078 -- 发布时间:2016/5/28 14:51:00 -- 最终还是用listview来搞定 |