treeview 选中,移动,重命名
来源:互联网 发布:java 面向服务架构 编辑:程序博客网 时间:2024/06/04 18:07
private void ChangeChild(TreeNode node)
{
if (node.Nodes.Count != 0)
{
foreach (TreeNode item in node.Nodes)
{
item.Checked = node.Checked;
ChangeChild(item);
}
}
}
private void ChangeParent(TreeNode node)
{
if (node.Parent != null)
{ //兄弟节点被选中的个数
int brotherNodeCheckedCount = 0;
//遍历该节点的兄弟节点
foreach (TreeNode tn in node.Parent.Nodes)
{
if (tn.Checked == true)
brotherNodeCheckedCount++;
} //兄弟节点全没选,其父节点也不选
if (brotherNodeCheckedCount == 0)
{
node.Parent.Checked = false;
ChangeParent(node.Parent);
} //兄弟节点只要有一个被选,其父节点也被选
if (brotherNodeCheckedCount >= 1)
{
node.Parent.Checked = true;
ChangeParent(node.Parent);
}
}
}
private void TreeMenu_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
TreeViewHitTestInfo info = this.TreeMenu.HitTest(e.Location);
if (info != null && info.Location == TreeViewHitTestLocations.StateImage)
{
TreeNode node = e.Node;
if (node != null)
{
ChangeChild(node);
ChangeParent(node);
}
}
}
//移动
TreeNode tempNode, currentNode;
int orderby;
private void ToolStripMenuItemUp_Click(object sender, EventArgs e)
{
currentNode = TreeMenu.SelectedNode;
if (currentNode == null)
{
return;
}
else
{
tempNode = currentNode.PrevNode;
if (tempNode == null)
{
return;
}
else
{
SystemMenuCustomInfo pre = (SystemMenuCustomInfo)tempNode.Tag;
SystemMenuCustomInfo current = (SystemMenuCustomInfo)currentNode.Tag;
orderby = pre.OrderBy;
pre.OrderBy = current.OrderBy;
current.OrderBy = orderby;
int rst = ManagerController.GetISystemMenuCustomManager().Update(pre);
rst = ManagerController.GetISystemMenuCustomManager().Update(current);
MnuTreeController.InitMenuTree(this.TreeMenu, "customSelector");
}
}
}
private void ToolStripMenuItemDown_Click(object sender, EventArgs e)
{
currentNode = TreeMenu.SelectedNode;
if (currentNode == null)
{
return;
}
else
{
tempNode = currentNode.NextNode;
if (tempNode == null)
{
return;
}
else
{
SystemMenuCustomInfo next = (SystemMenuCustomInfo)tempNode.Tag;
SystemMenuCustomInfo current = (SystemMenuCustomInfo)currentNode.Tag;
orderby = next.OrderBy;
next.OrderBy = current.OrderBy;
current.OrderBy = orderby;
int rst = ManagerController.GetISystemMenuCustomManager().Update(next);
rst = ManagerController.GetISystemMenuCustomManager().Update(current);
MnuTreeController.InitMenuTree(this.TreeMenu, "customSelector");
}
}
}
//重命名
private void ToolStripMenuItemRename_Click(object sender, EventArgs e)
{
TreeMenu.LabelEdit = true;
TreeNode current = TreeMenu.SelectedNode;
if (current!=null)
{
preSystemMenuCustom = (SystemMenuCustomInfo)current.Tag;
current.BeginEdit();
}
}
private SystemMenuCustomInfo preSystemMenuCustom;
private void TreeMenu_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
{
if (e.Label == null)
{ return; }
preSystemMenuCustom.MenuName = e.Label;
TreeMenu.LabelEdit = false;
int rst = ManagerController.GetISystemMenuCustomManager().Update(preSystemMenuCustom);
}
/////////TreeView节点初始选中
TreeNodeChecked(this.TreeMenu.Nodes[0], preInfoUserList[i].Right);
public static void TreeNodeChecked(TreeNode RootNode, string Right)
{
if (RootNode.Nodes.Count > 0)
{
for (int i = 0; i < RootNode.Nodes.Count; i++)
{
if (((SystemMenuInfo)RootNode.Nodes[i].Tag).MenuCode == Right)
{
RootNode.Nodes[i].Checked=true;
}
if (RootNode.Nodes[i].Nodes.Count > 0)
{
TreeNodeChecked(RootNode.Nodes[i], Right);
}
}
}
}
// 获得选中的节点
public void GetNodeRole(TreeNode treeNode)
{
if (treeNode.Checked)
{
SystemMenuInfo info = (SystemMenuInfo)treeNode.Tag;
SystemRolePrivilegeInfo infoRole = new SystemRolePrivilegeInfo();
if (info != null&&info.MenuCode!="")
{
infoRole.RoleCode = _RoleCode;
infoRole.Right = info.MenuCode;
ReflectionHelper.FillObjectCreateInfo(infoRole);
infoRoleList.Add(infoRole);
}
}
foreach (TreeNode tn in treeNode.Nodes)
{
GetNodeRole(tn);
}
}
- treeview 选中,移动,重命名
- TreeView移动(选中节点,父节点子节点一起移动)
- C# winform treeview节点重命名
- TreeView CheckBox级联选中
- TreeView节点选中问题
- c#treeview选中节点
- Ubuntu移动、重命名文件
- treeview中如何选中节点!
- treeview checkbox 客户端级联选中
- TreeView单击选中复选框
- JS实现TreeView联动选中
- c#treeview自动定位选中
- delphi 重命名、复制、移动文件
- 重命名、移动和复制文件
- java中重命名,移动文件
- 如何让treeview默认不选中
- 遍历TreeView得到选中的节点
- 关于TreeView控件CheckBox选中事件
- xcode 制作静态库.a文件 详解
- SQL基础学习
- Directshow视频采集保存
- 强制SQL SERVER使用某种表连接方式
- RMI网络编程开发之一 JAVA“进程间”通信方式
- treeview 选中,移动,重命名
- 判断一个正整数是否为质数的算法
- 三种方法求最大连续子数组的和
- ORACLE表连接
- Shell命令笔记
- C++ 编写DLL 动态及静态调用DLL方法
- 用Jersey构建RESTful服务4--通过jersey-client客户端调用Jersey的Web服务模拟CURD
- 2014.3.19浅谈数据库的模糊查询与优化查询
- 应用Hash函数