父节点选中事件---->全部选中
父节点取消选中事件----->全部不选中
子节点选中事件------>遍历,全部选中父节点也选中,否则父节点不选中
子节点取消事件------>遍历,同上
总体来说,其实就是两个事件,父节点事件,根据父节点情况判断
子节点事件,根据遍历子节点判断
<div align="left" style="width:100%; margin:10px;">
<asp:TreeView ID="TreeView1" runat="server" ShowExpandCollapse="false"
ShowCheckBoxes="All" >
<ParentNodeStyle Font-Bold="false" />
<HoverNodeStyle ForeColor="#6666AA" />
<SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" HorizontalPadding="0px"
VerticalPadding="0px" />
<NodeStyle Font-Size="10pt" ForeColor="Black" HorizontalPadding="5px"
NodeSpacing="1px" VerticalPadding="1px" />
</asp:TreeView>
</div>
***************************************************************************************************************
1、Window 应用程序窗体里
***************************************************************************************************************
//C# WEB 窗体没有事件treeView1_AfterSelect(object sender, TreeViewEventArgs e) Window 应用程序窗体里却能找到
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Action != TreeViewAction.Unknown)
{
if (e.Node.Checked)
{
if (e.Node.Nodes.Count > 0)
CheckTrueAllNodes(e.Node.Nodes);
}
else
{
if (e.Node.Parent != null)
CheckFalsePNode(e.Node.Parent);
}
}
}
private void CheckTrueAllNodes(TreeNodeCollection nodes)
{
foreach (TreeNode td in nodes)
{
td.Checked = true;
if (td.Nodes.Count > 0)
CheckTrueAllNodes(td.Nodes);
}
}
private void CheckFalsePNode(TreeNode node)
{
node.Checked = false;
if (node.Parent != null)
CheckFalsePNode(node.Parent);