以文本方式查看主题

-  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
pkey.clear
vars("pclose") = False
For i As Integer = 1 To 3
    Dim btn As WinForm.Button
    btn = e.Form.CreateControl("btn_pg" & i, ControlTypeEnum.Button)
    e.Form.controls("panel1").AddControl(btn)
    btn.Visible = False
    btn.backColor = Color.white
    btn.Dock = 3
Next


--  作者:blsu33
--  发布时间:2015/3/26 18:08:00
--  
太谢谢您了
可是还有第二个问题
2、覆盖的问题,是因为你把按钮添加在一个panel里面了,你应该弄两个panel,然后分别添加属于自己的按钮啊

可是Panl 不会自动变动长度,会出现这样



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


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

图片点击可在新窗口打开查看此主题相关图片如下:编码错误.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间: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,然后往里面设计内容的啊。

 

 你现在到底想实现什么?