private void 增加ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dataForm == null)
            {
                dataForm = new DataForm();
                dataForm.DataPanelSelected += panelSelected;
                dataForm.WindowState = FormWindowState.Maximized;
                dataForm.MdiParent = this;
                dataForm.Visible = true;
            }
            dataForm.AddDataPanel();
        }
        private void panelSelected(object sender, DataPanel panel)
        {
            if (treeView1.Nodes.Count > 0)
            {
                recursiveSelect(treeView1.Nodes[0], panel.CurveDescriptions);
            }
        }
        private void recursiveSelect(TreeNode node, List<string> list)
        {
            if (list == null) return;
            if (node.Nodes.Count == 0)
            {
                if (list.Contains(node.Text) && !node.Checked)
                    node.Checked = true;
                else if (!list.Contains(node.Text) && node.Checked)
                    node.Checked = false;
            }
            else
            {
                foreach (TreeNode n in node.Nodes)
                    recursiveSelect(n, list);
            }
        }treeviewlist

解决方案 »

  1.   

    第一次初始化加载dataForm.DataPanelSelected方法 private void recursiveSelect(TreeNode node, List<string> list)
    这个加载到某一个节点的列表
      

  2.   

     第一个红色句子中的运算符‘+=’是什么意思啊?panelSelected方法能参加运算?
      

  3.   

    http://msdn.microsoft.com/zh-cn/library/ms366768.aspx
    http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx
      

  4.   

    dataForm.DataPanelSelected += panelSelected;这个是绑定事件
    在此之后,dataForm.DataPanelSelected触发的时候,会自动调用panelSelected方法。List<string> list
    这个定义了一个泛型列表集合,成员的类型是string,列表集合和数组类似,代表一些相同类型的元素构成的集合,和数组不同,往列表中添加元素更简单。这里用到了递归,所谓递归,就是在一个方法内又调用了自己。这个方法的作用是一层一层地选中树中的节点。
      

  5.   

    List<string> list
    泛型集合  string是集合元素的类型  
    +=  a+=b;  和a=a+b;是一样的。
                   
      

  6.   

     第一个红色句子中的运算符‘+=’是什么意思啊?panelSelected方法能参加运算?+=为dataForm的DataPanelSelected事件附加事件处理程序panelSelected