我现在写了一个动态加载的树,当窗体加载时显示父节点,然后点击父节点时让显示它的子节点。可是我点击了就是加载不上子节点,可以获取数据,小弟不才,请高手指点,谢谢了!有事件代码更好!

解决方案 »

  1.   

    把你的数据源发上来 大致就是在treeView1_AfterSelect()事件中实现动态增加
      

  2.   

    /// <summary>
            /// 动态添加省份
            /// </summary>
            private void GetProvince()
            {
                try
                {
                    IList<WuLiu_NetModels.WuLiu_Province> list = provinceservice.ShowProvince();
                    foreach (WuLiu_NetModels.WuLiu_Province province in list)
                    {
                        TreeNode node = new TreeNode();
                        node.Name = province.Code.ToString();
                        node.Text = province.Name.ToString();
                        trvProvince.Nodes.Add(node.Name, node.Text);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }这些代码是窗体加载的时候执行的,我现在主要是想添加它的子节点,该如何添加,
    还有一个问题就是 我点击节点时 弹出的对话框显示绑定的值 与数据库里面的值不相符。Id 和 name 不相符。这是怎么回事?请高手帮忙
      

  3.   

    private void TreShow()
            {
                dtStoreroom = se.SelectNameStoreroom(); //这是一个表
                tre_Sort.Nodes.Clear(); //tre_Sort是一个treeview
                
                for (int i = 0; i < dtStoreroom.Rows.Count; i++)
                {
                    dtSort = se.SelectResSort(dtStoreroom.Rows[i][1].ToString());
                    tre_Sort.Nodes.Add(new TreeNode(dtStoreroom.Rows[i][1].ToString()));
                    for (int j = 0; j < dtSort.Rows.Count; j++)
                    {
                        tre_Sort.Nodes[i].Nodes.Add(new TreeNode(dtSort.Rows[j][2].ToString()));
                    }
                }
                
            }这是我程序的一部分代码,不知道对你有帮助没!
    1.就先加一个节点tre_Sort.Nodes.Add(new TreeNode(dtStoreroom.Rows[i][1].ToString()));
    2.然后tre_Sort.Nodes[i].Nodes.Add(new TreeNode(dtSort.Rows[j] [2].ToString()));在这个节点下添加子节点!
      

  4.   

    还是用foreach 好点 
    用 for  太浪费性能了!
      

  5.   

    //点击树节点事件
            private void TreeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                Panel p = (Panel)MainForm.dHouse.Controls["DataHouse"];
                ToolStrip t = (ToolStrip)p.Controls["toolStrip"];
                //缓存树节点
                  selectedNode = e;
                //绑定数据
                  FormMethod.BindHouse(e, GridHouse);
                FormMethod.BindDetail(e, GridDetail);
                //控制窗口显示
                  MainForm.house.Show(this.DockPanel);
                MainForm.detail.Show(this.DockPanel);
            }
    1、树节点鼠标点击事件
    2、缓存树节点(在e.tag中存了ID)
    3、在子窗口根据这个ID进行数据的查询和显示可以尝试一下,我是可以的