首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为treeview VB.NET中的每个节点生成一个包含相同复选框的新面板(附加图像)

为treeview VB.NET中的每个节点生成一个包含相同复选框的新面板(附加图像)
EN

Stack Overflow用户
提问于 2012-07-25 02:00:34
回答 1查看 376关注 0票数 1

我想生成一个新的面板,在树视图中的每个节点上单击一下。但是每个新生成的面板都会有相同的复选框。此外,这些复选框链接到具有选中条件的分组框。

我可以通过为每个节点添加一个面板来为4-5个节点执行此操作。但我有大约90个这样的节点。敬请参考以下图片,

有90个这样的节点。

有没有更简单的方法来实现这一点呢?还是硬方法(为每个节点添加面板并使用显示/隐藏)是唯一的方法?

我们将非常感谢您的帮助。

干杯,

EN

回答 1

Stack Overflow用户

发布于 2012-07-25 18:31:57

为此,您可以使用循环。

这是一个示例:

首先,您需要定义一些全局变量:

代码语言:javascript
复制
Dim Panels(100) As Panel
Dim CheckBox1(100) As CheckBox
Dim CheckBox2(100) As CheckBox
Dim CheckBox3(100) As CheckBox
Dim Label1(100) As Label

然后,您应该初始化Form_Load()事件上的控件:

代码语言:javascript
复制
For i As Integer = 0 To 100

    'Initialize Controls
    Panels(i) = New Panel()
    CheckBox1(i) = New CheckBox()
    CheckBox2(i) = New CheckBox()
    CheckBox3(i) = New CheckBox()
    Label1(i) = New Label()

    'Set properties
    CheckBox1.Left = 100
    CheckBox2.Left = 100
    CheckBox3.Left = 100
    CheckBox1.Top = 100
    CheckBox2.Top = 200
    CheckBox3.Top = 300
    Label1.Left = 100
    Label1.Top = 50
    Label1.Text = "ID : " & NodeNames(i) 'You should replace NodeNames(i) with a variable that you are using for the name of nodes.

    'Add Controls to panel
    Panels(i).Controls.Add(CheckBox1(i))
    Panels(i).Controls.Add(CheckBox2(i))
    Panels(i).Controls.Add(CheckBox3(i))
    Panels(i).Controls.Add(Label1(i))

    'Set visiblity of panel to false
    Panels(i).Visible = False

    'Add panel to the form.
    Me.Controls.Add(Panels(i))       
Next

当你需要显示一个面板时,你应该这样做:

代码语言:javascript
复制
Panels(i).BringToFront()
Panels(i).Visible = True

但是在中有很多面板并不是一个好主意。我建议您只使用一个面板,并通过代码为每个节点修改它。因为如果您有许多面板和许多控件,您的应用程序可能会使用大量的内存。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11636654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档