使用treeview或radiobutton修改Windows窗体

时间:2012-06-27 21:07:02

标签: c# .net winforms

我正在创建一个GUI,我希望一个应用程序根据树视图中的哪个项目或单选按钮上的哪个项目进行更改。

我知道如何知道选择了哪个项目,但是如何根据项目更改界面?

我该怎么办?多个面板?有些隐藏?

想象一下应用程序和MMC一样,右侧会根据我选择的内容进行更改。

我在事件中使用了类似Button1.Visible = trueButton2.Visible = false的内容,但如何将元素组合在右侧? 在desingner模式中,我会看到每个对象都与其他对象重叠?

2 个答案:

答案 0 :(得分:1)

假设您指的是菜单(左侧菜单选项;单击一个,窗口右侧填充相应设置),只需为每个“窗口”创建一个单独的控件(在右边非技术性地使用这个词。选择左侧的条目后,通过在右侧面板中的相应控件上调用BringToFront()来处理Click事件。

如果你没有提到一个菜单,而是指更细粒度的东西(左边的每个选项都在同一个中央显示单元上运行,每个选择只能影响一小部分),然后将中央显示单元划分为面板,每个单元可以受左侧选择影响,并根据左侧选择显示和隐藏它们。

答案 1 :(得分:0)

处理此问题的常用方法是在屏幕右侧放置一个面板,并且每个不同的视图都创建了自己的UserControl。然后,当树视图选择发生更改时,清除面板的子项,创建相关的UserControl实例,将其添加到面板,并将其Dock设置为Fill。类似下面的伪代码:

    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
        panel1.Controls.Clear();
        UserControl uc = new MyUserControl();
        uc.DataToShow = (MyObject)treeView1.SelectedNode.Tag;
        uc.Dock = DockStyle.Fill;
        panel1.Controls.Add(uc);
    }