2023年6月22日发(作者:)
winformTreeviewCheckbox选择事件 private void treeView1_MouseClick( object sender, MouseEventArgs e) { TreeNode node = eAt( new Point(e.X, e.Y)); if (node != null ) { ChangeChild(node, d); // 影响⼦节点
ChangeParent(node); // 影响⽗节点
} }
// 递归⼦节点跟随其全选或全不选
private void ChangeChild(TreeNode node, bool state) { d = state; foreach (TreeNode tn in ) ChangeChild(tn, state); }
// 递归⽗节点跟随其全选或全不选
private void ChangeParent(TreeNode node) { if ( != null ) { // 兄弟节点被选中的个数
int brotherNodeCheckedCount = 0 ; // 遍历该节点的兄弟节点
foreach (TreeNode tn in ) { if (d == true ) brotherNodeCheckedCount ++ ; } // 兄弟节点全没选,其⽗节点也不选
if (brotherNodeCheckedCount == 0 ) { d = false ; ChangeParent(); } // 兄弟节点只要有⼀个被选,其⽗节点也被选
if (brotherNodeCheckedCount >= 1 ) { d = true ; ChangeParent(); } } } private void treeView1_MouseClick( object sender, MouseEventArgs e) { TreeNode node = eAt( new Point(e.X, e.Y)); if (node != null ) { ChangeChild(node, d); // 影响⼦节点
ChangeParent(node); // 影响⽗节点
} }
// 递归⼦节点跟随其全选或全不选
private void ChangeChild(TreeNode node, bool state) { d = state; foreach (TreeNode tn in ) ChangeChild(tn, state); }
// 递归⽗节点跟随其全选或全不选
private void ChangeParent(TreeNode node) { if ( != null ) { // 兄弟节点被选中的个数
int brotherNodeCheckedCount = 0 ; // 遍历该节点的兄弟节点
foreach (TreeNode tn in ) { if (d == true ) brotherNodeCheckedCount ++ ; } // 兄弟节点全没选,其⽗节点也不选
if (brotherNodeCheckedCount == 0 ) { d = false ; ChangeParent(); } // 兄弟节点只要有⼀个被选,其⽗节点也被选
if (brotherNodeCheckedCount >= 1 ) { d = true ; ChangeParent(); } } }
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1687381911a5850.html
评论列表(0条)