在一个winform的主窗体中左侧是一个treeview控件,有固定的节点若干,现在我想实现点击左侧相应的节点然后在右侧的panel里面显示相应的窗体,我要用什么方法呢?各位老大说的详细点哈,本人已经满久没有接触winform了

解决方案 »

  1.   

    AfterSelect事件写你的代码,
    switch(treeview.seletecedvalue)
    {
       case "1":....break;
    default:...break;}
      

  2.   

    “panel里面显示相应的窗体”这是没有办法实现的。你的说法有错误。在右侧的panel里你只能添加Control,而不是窗体,你可以将你的窗体改为控件,然后在添加进来,至于怎么添加,上面的各位都已经说了。只是在添加的时候要将panel里的control清空。
      

  3.   

    參考如下:            TextBox textbox1 = new TextBox();
                textbox1.Text = "測試動態添加控件";
                textbox1.Location = new Point(10, 10);
                this.Controls.Add(textbox1);
      

  4.   

    谢谢黑马王子,我现在想在treeview里面得到选中的节点该怎么弄啊
      

  5.   

     private void Form1_Load(object sender, EventArgs e)
            {
                Form2 f1 = new Form2();
                f1.TopLevel = false;            Form3 f2 = new Form3();
                f2.TopLevel=false;            TreeNode td=new TreeNode();
                td.Text=f1.Text;
                td.Tag=f1;
                this.treeView1.Nodes.Add(td);            td = new TreeNode();
                td.Text = f2.Text;
                td.Tag = f2;
                this.treeView1.Nodes.Add(td);
                
            }        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                Control c =(Control) e.Node.Tag;
                c.Show();
                this.panel1.Controls.Clear();
                this.panel1.Controls.Add(c);
            }利用TreeNode.Tag来存放相应的Form控件.
      

  6.   

    using System;
    using System.IO;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace treeviewdemo
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                string path = @"C:\Documents and Settings\yf\My Documents";
                listnodes(path);
            }
            private void listnodes(string path)
        {
            string [] paths=Directory.GetDirectories(path);
               foreach (string p in paths)
               {
                   treeView1.Nodes.Add(p);
                   listnodes(p);
                }
        }        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                string path = treeView1.SelectedNode.Text;
                string[] files = Directory.GetFiles(path);
                listView1.Clear();
                listView1.View = View.List;
                foreach (string file in files)
                    listView1.Items.Add(file);
            }

        }
    }