dotnetbar.advTree递归选择节点
来源:互联网 发布:淘宝前端 编辑:程序博客网 时间:2024/06/18 10:24
#region 选择收信人
private void advTree1_NodeClick(object sender, TreeNodeMouseEventArgs e)
{
string names = "";
string ids = "";
string groups = "";
if (e.Node.Checked)
{
SelectNode(e.Node, true);
UpdateParentNode(e.Node);
SelectValue(ref ids, ref names, ref groups);
}
else
{
SelectNode(e.Node, false);
UpdateParentNode(e.Node);
SelectValue(ref ids, ref names, ref groups);
}
txtSendName.Text = names;
usernames = names;
groupnames = groups;
group_user_ids = ids;
}
//遍历选中状态的Name,ID(对应node里面的tagstring)
private void SelectValue(ref string ids, ref string names, ref string groups)
{
foreach (DevComponents.AdvTree.Node child in node1.Nodes)
{
for (int i = 0; i < child.Nodes.Count; i++)
{
if (child.Nodes[i].CheckState == CheckState.Checked)
{
//用户名插入
names += child.Nodes[i].Text + ",";
//插入组id(test改为组名)名以及用户Id
ids += child.TagString + "_" + child.Nodes[i].TagString + ",";
//ids += child.Text + "_" + child.Nodes[i].TagString + ",";
groups += child.Text + "_" + child.Nodes[i].Text + ",";
}
}
}
}
#endregion
#region 节点递归
//递归选择子节点
private void SelectNode(DevComponents.AdvTree.Node nod, bool flag)
{
if (nod.HasChildNodes)
{
foreach (DevComponents.AdvTree.Node child in nod.Nodes)
{
child.Checked = flag;
SelectNode(child, flag);
}
}
}
//递归更新父节点
private void UpdateParentNode(DevComponents.AdvTree.Node nod)
{
if (nod != node1)
{
bool sg = true;
foreach (DevComponents.AdvTree.Node cnod in nod.Parent.Nodes)
{
if (!cnod.Checked)
{
sg = false;
break;
}
}
if (sg)
{
nod.Parent.CheckState = CheckState.Checked;
UpdateParentNode(nod.Parent);
}
else
{
nod.Parent.CheckState = CheckState.Indeterminate;
UpdateParentNode(nod.Parent);
}
}
}
#endregion
- dotnetbar.advTree递归选择节点
- dotnetbar.advTree递归选择节点
- 设置advTree节点不能改变自身层级关系
- DotNetBar
- unity3d 选择一个物体递归输出所有节点名字
- TreeView节点选择影响其父子节点选中状态(递归)
- 节点选择
- DevComponents.AdvTree 使用方法
- treeview 节点 父节点 递归
- [原创]递归节点
- 递归得到叶子节点。
- 递归实现节点查询
- CTreeCtrl节点递归查找
- 递归输出树形节点
- treeview递归绑定节点
- oracle根节点递归
- 递归查找指定节点
- 递归删除子节点
- C++编程问题合集(持续更新中...)
- redis服务相关命令
- 福建第六届省赛 G题 字符串最大乘积dp
- pandas数据合并与重塑---concat方法
- 基于SSM框架的分页
- dotnetbar.advTree递归选择节点
- python2.x->python3.x 的一些错误
- zookeeper集群配置
- Netty学习(三)—Codec编解码基础
- 范式的一点总结
- c#之base和this关键字
- 千岛湖冰水救人,程序员见义勇为,手工点赞!
- php通过mysqli连接数据库
- [LeetCode] 617. Merge Two Binary Tree