在 C# 中使用 TreeView 创建设置表单

Posted

技术标签:

【中文标题】在 C# 中使用 TreeView 创建设置表单【英文标题】:Creating Settings form using TreeView in C# 【发布时间】:2012-10-30 23:35:56 【问题描述】:

我正在为 C# 开发的软件开发设置表单。我正在研究不同的软件如何实现它们的设置表单。

在我遇到的大多数情况下,他们似乎在表单的左侧窗格中使用 Treeview,在右侧窗格中使用配置设置。

参考网址:http://2.bp.blogspot.com/-nMfQoLurxwM/UDXfiZKd4DI/AAAAAAAAAME/IRf6kmxay4w/s1600/bild1.jpg

我想知道,不同的控件是如何设计/显示在右侧窗格中的。他们是否根据TreeView 中选择的节点隐藏所有控件,如下所示:

   if (treeView1.SelectedNode == treeView1.Nodes[0])
        
            this.groupBox1.Visible = true;
            this.button1.Visible = true;
            this.textBox1.Visible = true;
            this.textBox2.Visible = true;
            this.label1.Visible = true;
            this.label2.Visible = true;
            this.label3.Visible = true;

        
        else
        
            this.groupBox1.Visible  = false;
            this.button1.Visible    = false;
            this.textBox1.Visible   = false;
            this.textBox2.Visible   = false;
            this.label1.Visible     = false;
            this.label2.Visible     = false;
            this.label3.Visible     = false;

        this.groupBox2.Visible  = true;
            this.button2.Visible    = true;
            this.textBox3.Visible   = true;
            this.textBox3.Visible   = true;
            this.labe4.Visible     = true;
            this.label5.Visible     = true;
            this.label6.Visible     = true;

           // bool success = selectColor();
        

我的理解正确吗?或者我们是否有更好的设计方法来创建设置表单。

谢谢

【问题讨论】:

我正在做类似的事情,我的方法是将设置存储在 XML 文件中,然后每当用户单击树中的节点时重建右侧面板。因此,如果 xml 是项目列表,则构建一个列表框。对于字符串构建文本框等。 在组框中添加控件。当 groupbox 隐藏和可见时,groupbox 中存在的所有控件都隐藏和可见。 【参考方案1】:

有很多方法,但您可以将 Treeview 控件和 Tab 控件结合使用。检查此link。这可能会有所帮助。在这个链接中,tabcontrol的标签页作为treeview的控制节点。

也看看这个link

【讨论】:

【参考方案2】:

您可以创建面板并交换它们的可见性。因此,根据选择的设置,您填充控件并显示特定面板。

【讨论】:

以上是关于在 C# 中使用 TreeView 创建设置表单的主要内容,如果未能解决你的问题,请参考以下文章

C#中如何设置treeview每个节点背景图片及背景颜色

C#中,如何实现点击treeview父节点的文字达到展开改节点的效果?

C# treeView 是不是有代码可以将子节点安排为其父节点的最后一个子节点

如何访问服务器上的 Jquery TreeView?

c#(windows程序)treeview 获得焦点选中

你可以在 C# 中使用泛型表单吗?