前段时间项目里老大安排要对弹出页面的树控件进行选择:
当选择父节点时,子节点要全选;
当不选父节点时,子节点全不选。当然光选子节点可以的啦。
弄了半天,也只是找到js的代码,长而且很多方法,不易看懂。
自己测试了个方法可以试试哦。
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (0 < e.Node.Nodes.Count)
{
foreach (TreeNode node in e.Node.Nodes)
{
node.Checked = e.Node.Checked;
}
}
}
嘻嘻。搞定
后来老大有要求对树节点进行拖动,及将一个子节点拖放到另一个节点下面去,考,又耍额,不过。。。。。。嘿嘿
private void treeView1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false))
{
TreeNode drageNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");
// 获取鼠标落点处 TreeNode
Point p = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));
TreeNode targetNode = ((TreeView)sender).GetNodeAt(p);
targetNode.Nodes.Add(drageNode.Clone() as TreeNode); // 复制此节点和以此节点为根的整个子树
drageNode.Remove();
(sender as TreeView).ExpandAll();
}
else
{
MessageBox.Show("out!");
}
}
一定要将 TreeView 的 AllowDrop 设为 true 哦
下面不让拖动根节点
private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
{
TreeNode node = e.Item as TreeNode;
if (e.Button == MouseButtons.Left && null != node && null != node.Parent)
{
DoDragDrop(e.Item, DragDropEffects.Move);
}
}
用鼠标将某项拖动到拖动到该控件的工作区域时发生
private void treeView1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
哇唔,搞定。嘿嘿