以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- Panl 控件中BUTTON控件的自动增加 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65968) |
-- 作者:blsu33 -- 发布时间:2015/3/26 16:57:00 -- Panl 控件中BUTTON控件的自动增加 老师, 是个老问题,举例我这边有100个窗口(但是已经通过代码限定了最多能打开10个)附件中的例子希望老师给改改: 1、关于Panl 控件中是每一BUTTON对应一个窗口,如果panl 中加入100个Button有点痛苦,能否有别的方法。 2、点击导航的不同页面 “任务”和“联系人”,Panl 控件中BUTTON 会被不同页面对应的 BUTTON覆盖 [此贴子已经被作者于2015/3/26 18:09:32编辑过]
|
-- 作者:有点甜 -- 发布时间:2015/3/26 17:13:00 -- 1、你可以用动态添加控件的方式,完panel里面添加button,参考 http://www.foxtable.com/help/topics/1409.htm
2、覆盖的问题,是因为你把按钮添加在一个panel里面了,你应该弄两个panel,然后分别添加属于自己的按钮啊
|
-- 作者:blsu33 -- 发布时间:2015/3/26 17:21:00 -- 有点甜老师, 第一个,这个真不会,普通用户的还没学会,动态增加 有点难 ,估计我一个星期也弄不出来,最后还得问您;能不能给个代码。
|
-- 作者:有点甜 -- 发布时间:2015/3/26 17:44:00 -- 呃,不是很简单么?在afterload事件,代码这样写
pidx.Clear |
-- 作者:blsu33 -- 发布时间:2015/3/26 18:08:00 -- 太谢谢您了 可是还有第二个问题 2、覆盖的问题,是因为你把按钮添加在一个panel里面了,你应该弄两个panel,然后分别添加属于自己的按钮啊 可是Panl 不会自动变动长度,会出现这样 |
-- 作者:有点甜 -- 发布时间:2015/3/26 19:11:00 -- 不明白你的意图。 呃,这两个本来就是不相关的。要显示哪一个,你就控制哪个panel显示出来。 |
-- 作者:blsu33 -- 发布时间:2015/3/27 11:24:00 -- 有点甜老师, 用两个PANL 好像很难,我使用了把页面前两位添加数字编号,其他的都可以了实现了,就差以下代码,烦您帮忙看看: If e.Sender.Name.StartsWith("btn_pg") Then For Each k As String In pidx.keys \'显示所有值 Dim btn As WinForm.Button = e.Form.Controls(pidx(k)) If pidx(k) = e.Sender.Name For Each TabControl In e.Form.Controls ‘想要达到点击btn_pg 链接到对应界面 Dim tab As WinForm.TabControl tab.SelectedIndex = k btn.BackColor = Color.red Else btn.BackColor = Color.white Next End If Next End If
|
-- 作者:有点甜 -- 发布时间:2015/3/27 11:34:00 -- 你要做多少个,对应的东西就要弄多少个,比如
pidx 就要弄两个,分别存储内容 |
-- 作者:blsu33 -- 发布时间:2015/3/27 11:52:00 -- 要做10个 下面代码我复制了10个 可是增加的Button 不好用,麻烦您帮忙改改 If e.Sender.Name.StartsWith("btn_pg") Then For Each k As String In pidx.keys \'显示所有值 Dim btn As WinForm.Button = e.Form.Controls(pidx(k)) If pidx(k) = e.Sender.Name Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1") tab.SelectedIndex = k btn.BackColor = Color.red Else btn.BackColor = Color.white End If Next End If If e.Sender.Name.StartsWith("btn_pg") Then For Each k As String In pidx.keys \'显示所有值 Dim btn As WinForm.Button = e.Form.Controls(pidx(k)) If pidx(k) = e.Sender.Name Dim tab As WinForm.TabControl = e.Form.Controls("TabControl2") tab.SelectedIndex = k btn.BackColor = Color.red Else btn.BackColor = Color.white End If Next End If [此贴子已经被作者于2015/3/27 11:53:24编辑过]
|
-- 作者:有点甜 -- 发布时间:2015/3/27 11:54:00 -- 不理解你为什么要这样做,你设计界面的时候,肯定要添加 TabControl,然后往里面设计内容的啊。
你现在到底想实现什么? |