| 订阅 | 在线投稿
分享
 
 
 

RSS阅读器制作之TreeView树节点移动操作的实现

来源:互联网网民  宽屏版  评论
2006-12-04 21:03:27

用于在TreeView之间调整树节点位置

RSS阅读器制作之TreeView树节点移动操作的实现
//开始拖动树节点
RSS阅读器制作之TreeView树节点移动操作的实现
private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
RSS阅读器制作之TreeView树节点移动操作的实现
RSS阅读器制作之TreeView树节点移动操作的实现
...{
RSS阅读器制作之TreeView树节点移动操作的实现
if (e.Button == MouseButtons .Left )
RSS阅读器制作之TreeView树节点移动操作的实现
RSS阅读器制作之TreeView树节点移动操作的实现
...{
RSS阅读器制作之TreeView树节点移动操作的实现
DoDragDrop(e.Item, DragDropEffects.Move);
RSS阅读器制作之TreeView树节点移动操作的实现
}
RSS阅读器制作之TreeView树节点移动操作的实现
}
RSS阅读器制作之TreeView树节点移动操作的实现

RSS阅读器制作之TreeView树节点移动操作的实现
//检验拖放的数据是否适用于目标控件,即是否为TreeNode对象
RSS阅读器制作之TreeView树节点移动操作的实现
private void treeView1_DragEnter(object sender, DragEventArgs e)
RSS阅读器制作之TreeView树节点移动操作的实现
RSS阅读器制作之TreeView树节点移动操作的实现
...{
RSS阅读器制作之TreeView树节点移动操作的实现
if (e.Data .GetDataPresent ("System.Windows.Forms.TreeNode"))
RSS阅读器制作之TreeView树节点移动操作的实现
RSS阅读器制作之TreeView树节点移动操作的实现
...{
RSS阅读器制作之TreeView树节点移动操作的实现
e.Effect = DragDropEffects.Move;
RSS阅读器制作之TreeView树节点移动操作的实现
}
RSS阅读器制作之TreeView树节点移动操作的实现
else
RSS阅读器制作之TreeView树节点移动操作的实现
RSS阅读器制作之TreeView树节点移动操作的实现
...{
RSS阅读器制作之TreeView树节点移动操作的实现
e.Effect = DragDropEffects.None;
RSS阅读器制作之TreeView树节点移动操作的实现
}
RSS阅读器制作之TreeView树节点移动操作的实现
}
RSS阅读器制作之TreeView树节点移动操作的实现

RSS阅读器制作之TreeView树节点移动操作的实现
//拖放操作
RSS阅读器制作之TreeView树节点移动操作的实现
private void treeView1_DragDrop(object sender, DragEventArgs e)
RSS阅读器制作之TreeView树节点移动操作的实现
RSS阅读器制作之TreeView树节点移动操作的实现
...{
RSS阅读器制作之TreeView树节点移动操作的实现
//获得拖放中的节点
RSS阅读器制作之TreeView树节点移动操作的实现
TreeNode moveNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");
RSS阅读器制作之TreeView树节点移动操作的实现

RSS阅读器制作之TreeView树节点移动操作的实现
//根据鼠标坐标确定要移动到的目标节点
RSS阅读器制作之TreeView树节点移动操作的实现
Point pt;
RSS阅读器制作之TreeView树节点移动操作的实现
TreeNode targeNode;
RSS阅读器制作之TreeView树节点移动操作的实现
pt = ((TreeView)(sender)).PointToClient(new Point(e.X,e.Y));
RSS阅读器制作之TreeView树节点移动操作的实现
targeNode = treeView1.GetNodeAt(pt);
RSS阅读器制作之TreeView树节点移动操作的实现

RSS阅读器制作之TreeView树节点移动操作的实现
//如果目标节点无子节点则添加为同级节点,反之添加到下级节点的未端
RSS阅读器制作之TreeView树节点移动操作的实现
if (targeNode.Nodes.Count == 0)
RSS阅读器制作之TreeView树节点移动操作的实现
RSS阅读器制作之TreeView树节点移动操作的实现
...{
RSS阅读器制作之TreeView树节点移动操作的实现
targeNode.Parent.Nodes.Insert(targeNode.Index, (TreeNode)moveNode.Clone());
RSS阅读器制作之TreeView树节点移动操作的实现
}
RSS阅读器制作之TreeView树节点移动操作的实现
else
RSS阅读器制作之TreeView树节点移动操作的实现
RSS阅读器制作之TreeView树节点移动操作的实现
...{
RSS阅读器制作之TreeView树节点移动操作的实现
targeNode.Nodes.Insert(targeNode.Nodes .Count, (TreeNode)moveNode.Clone());
RSS阅读器制作之TreeView树节点移动操作的实现
}
RSS阅读器制作之TreeView树节点移动操作的实现
//展开目标节点,便于显示拖放效果
RSS阅读器制作之TreeView树节点移动操作的实现
targeNode.Expand();
RSS阅读器制作之TreeView树节点移动操作的实现

RSS阅读器制作之TreeView树节点移动操作的实现
//移除拖放的节点
RSS阅读器制作之TreeView树节点移动操作的实现
moveNode.Remove();
RSS阅读器制作之TreeView树节点移动操作的实现
}

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
用于在TreeView之间调整树节点位置 [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif[/img][/url] //开始拖动树节点 [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif[/img][/url] private void treeView1_ItemDrag(object sender, ItemDragEventArgs e) [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif[/img][/url][url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif[/img][/url] ...{ [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] if (e.Button == MouseButtons .Left ) [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif[/img][/url][url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif[/img][/url] ...{ [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] DoDragDrop(e.Item, DragDropEffects.Move); [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif[/img][/url] } [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif[/img][/url] } [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif[/img][/url] //检验拖放的数据是否适用于目标控件,即是否为TreeNode对象 [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif[/img][/url] private void treeView1_DragEnter(object sender, DragEventArgs e) [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif[/img][/url][url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif[/img][/url] ...{ [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] if (e.Data .GetDataPresent ("System.Windows.Forms.TreeNode")) [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif[/img][/url][url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif[/img][/url] ...{ [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] e.Effect = DragDropEffects.Move; [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif[/img][/url] } [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] else [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif[/img][/url][url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif[/img][/url] ...{ [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] e.Effect = DragDropEffects.None; [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif[/img][/url] } [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif[/img][/url] } [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif[/img][/url] //拖放操作 [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif[/img][/url] private void treeView1_DragDrop(object sender, DragEventArgs e) [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif[/img][/url][url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif[/img][/url] ...{ [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] //获得拖放中的节点 [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] TreeNode moveNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode"); [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] //根据鼠标坐标确定要移动到的目标节点 [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] Point pt; [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] TreeNode targeNode; [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] pt = ((TreeView)(sender)).PointToClient(new Point(e.X,e.Y)); [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] targeNode = treeView1.GetNodeAt(pt); [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] //如果目标节点无子节点则添加为同级节点,反之添加到下级节点的未端 [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] if (targeNode.Nodes.Count == 0) [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif[/img][/url][url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif[/img][/url] ...{ [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] targeNode.Parent.Nodes.Insert(targeNode.Index, (TreeNode)moveNode.Clone()); [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif[/img][/url] } [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] else [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif[/img][/url][url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif[/img][/url] ...{ [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] targeNode.Nodes.Insert(targeNode.Nodes .Count, (TreeNode)moveNode.Clone()); [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif[/img][/url] } [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] //展开目标节点,便于显示拖放效果 [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] targeNode.Expand(); [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] //移除拖放的节点 [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif[/img][/url] moveNode.Remove(); [url=http://www.wangchao.net.cn/bbsdetail_564436.html][img]http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif[/img][/url] }
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有