using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
StringBuilder nodesTag;
string tag = "True";
public Form1()
{
InitializeComponent();
}
private void CheckBox()
{
nodesTag = new StringBuilder();
TreeNode node= nodeTree.TopNode;//得到TreeView的根结点,注意根结点只有一个
//每次搜寻到根结点
while (node.PrevNode != null)
node = node.PrevNode;
TraversNodes(node);//遍历根结点
MessageBox.Show(nodesTag.ToString());
}
//说明:这里里面的算法会执行多次,你自己检查一下算法的执行顺序,我现在还不知道怎么回事
private void TraversNodes(TreeNode parent)
{
TreeNode node = parent;
if (node != null)
{
if(node.Tag !=null&&node.Tag.ToString ()==tag )
nodesTag.AppendFormat("node:{0} has checked\n", node.Name);
if(node.FirstNode !=null )
{
TraversNodes(node.FirstNode);
}
if (node.NextNode !=null )
{
TraversNodes(node.NextNode);
}
}
}
private void nodeTree_AfterCheck(object sender, TreeViewEventArgs e)
{
TreeNode node = e.Node;
if (node.Tag== null)
node.Tag = tag;//附加结点信息
else
node.Tag = null;
}
private void button1_Click(object sender, EventArgs e)
{
CheckBox();
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
StringBuilder nodesTag;
string tag = "True";
public Form1()
{
InitializeComponent();
}
private void CheckBox()
{
nodesTag = new StringBuilder();
TreeNode node= nodeTree.TopNode;//得到TreeView的根结点,注意根结点只有一个
//每次搜寻到根结点
while (node.PrevNode != null)
node = node.PrevNode;
TraversNodes(node);//遍历根结点
MessageBox.Show(nodesTag.ToString());
}
//说明:这里里面的算法会执行多次,你自己检查一下算法的执行顺序,我现在还不知道怎么回事
private void TraversNodes(TreeNode parent)
{
TreeNode node = parent;
if (node != null)
{
if(node.Tag !=null&&node.Tag.ToString ()==tag )
nodesTag.AppendFormat("node:{0} has checked\n", node.Name);
if(node.FirstNode !=null )
{
TraversNodes(node.FirstNode);
}
if (node.NextNode !=null )
{
TraversNodes(node.NextNode);
}
}
}
private void nodeTree_AfterCheck(object sender, TreeViewEventArgs e)
{
TreeNode node = e.Node;
if (node.Tag== null)
node.Tag = tag;//附加结点信息
else
node.Tag = null;
}
private void button1_Click(object sender, EventArgs e)
{
CheckBox();
}
}
}