首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

小弟新人,下边的代码不理解,请大神予以指点,尤其是红色部分。谢谢!

2013-09-07 
小弟新人,下边的代码不理解,请大神予以指点,尤其是红色部分。多谢!!! private void 增加ToolStripMenuItem_

小弟新人,下边的代码不理解,请大神予以指点,尤其是红色部分。多谢!!!
 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);
            }
        } treeview list
[解决办法]
第一次初始化加载dataForm.DataPanelSelected方法

 private void recursiveSelect(TreeNode node, List<string> list)
这个加载到某一个节点的列表
[解决办法]
http://msdn.microsoft.com/zh-cn/library/ms366768.aspx
http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx
[解决办法]
dataForm.DataPanelSelected += panelSelected;这个是绑定事件
在此之后,dataForm.DataPanelSelected触发的时候,会自动调用panelSelected方法。

List<string> list
这个定义了一个泛型列表集合,成员的类型是string,列表集合和数组类似,代表一些相同类型的元素构成的集合,和数组不同,往列表中添加元素更简单。

这里用到了递归,所谓递归,就是在一个方法内又调用了自己。这个方法的作用是一层一层地选中树中的节点。

热点排行