我怎样才能在c#中实现这一目标

时间:2012-06-15 10:24:45

标签: c# controls custom-controls

我正在开发一个Windows窗体应用程序。在窗体中,左边部分是树状菜单,右边部分是显示区域。如何根据我在树状菜单上单击的内容更改显示区域。 my app http://img3.ph.126.net/o_braOAtWPgCioFtVHiMmw==/1094937659422071823.jpg

我使用treenode类来实现这样的树形图:

System.Windows.Forms.TreeNode treeNode27 = new System.Windows.Forms.TreeNode("basic operation");

我尝试做的是使用几个面板。每个面板都绑定到一个菜单项。通过设置visible属性,我可以实现这一目标。但它太不方便了。特别是当我尝试设计每个面板时。 任何好的建议?

2 个答案:

答案 0 :(得分:0)

您需要的是一个事件处理程序,在用户单击树视图时将调用该事件处理程序(使用工具箱中的TreeView)。您可以通过在设计页面上选择树视图并在属性下单击事件来完成此操作。然后根据您的需要选择NodeMouseDoubleClick或NodeMouseClick。下面是一个捕获所选值的代码...享受......;)

  private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
    {
           if (treeView1.SelectedNode.Level == 2)
        {
          //text on the first level
            string text = treeView1.SelectedNode.Text;

        }
         else if (treeView1.SelectedNode.Level == 1)
        {
           //text on the second level 
            string text = treeView1.SelectedNode.Text;

        }


        }

答案 1 :(得分:0)

您可以将每个“面板”设计为新的用户控件。这样,您可以独立于主窗体设计所有“面板/区域”。

在主窗体上,为右侧区域创建一个面板,并将所有控件添加到该面板。

然后,当TreeNode选择事件发生时,您可以将所有用户控件设置为.Visible = false;,但显示的除外,并将其设置为.Visible = true;.Dock = DockStyle.Fill;