DancerDan
路人甲
路人甲
  • 注册日期2007-12-10
  • 发帖数6
  • QQ
  • 铜币131枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1458回复:2

[求助]跪求使用TreeView控件 控制图层的完整代码

楼主#
更多 发布于:2008-04-08 13:47
<P>如题</P>
<P>非常感谢</P>
喜欢0 评分0
DancerDan
路人甲
路人甲
  • 注册日期2007-12-10
  • 发帖数6
  • QQ
  • 铜币131枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-04-09 22:19
<P>求助版主啊  帮忙啊</P>
举报 回复(0) 喜欢(0)     评分
liu_tiger
路人甲
路人甲
  • 注册日期2008-03-01
  • 发帖数5
  • QQ
  • 铜币123枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
2楼#
发布于:2008-04-19 23:22

<P>我自己写得,你看看</P>
<P> '当用户开始拖动节点时触发的事件<BR>    Private Sub TreeView1_ItemDrag1(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles TreeView1.ItemDrag<BR>        DoDragDrop(e.Item, DragDropEffects.Move)        '移动拖动的节点<BR>    End Sub</P>
<P>    '在将对象拖入控件的边界时发生<BR>    Private Sub TreeView1_DragEnter1(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView1.DragEnter<BR>        e.Effect = e.AllowedEffect<BR>    End Sub</P>
<P>    '在完成拖放操作时发生<BR>    Private Sub TreeView1_DragDrop1(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView1.DragDrop<BR>        '获得目标节点位置坐标信息,将节点屏幕坐标转换为工作区坐标<BR>        Dim targetPoint As Point = TreeView1.PointToClient(New Point(e.X, e.Y))<BR>        '获得目标节点<BR>        Dim targetNode As TreeNode = TreeView1.GetNodeAt(targetPoint)<BR>        '获得拖动的节点<BR>        Dim draggedNode As TreeNode = CType(e.Data.GetData(GetType(TreeNode)), TreeNode)<BR>        '移动地图控件中的图层<BR>        Me.AxMap1.Layers.MoveTo(draggedNode.Index, targetNode.Index)        '移动图层,保持TreeView1 与 Axmap1 中图层序号一致<BR>        Me.AxMap1.Extent = Me.AxMap1.Extent     '目的是刷新地图控件<BR>        '确定拖动节点不是目标节点<BR>        If Not draggedNode.Equals(targetNode) Then<BR>            '确定拖动操作为移动数据<BR>            If e.Effect = DragDropEffects.Move Then<BR>                draggedNode.Remove()        '移除被拖动的节点<BR>                '判断是向上移动还是向下移动<BR>                '此处必须判断移动方向,上移是删除后面的节点,下移是删除前面的节点,下移比上移少一个计数节点,必须加一<BR>                If draggedNode.Index > targetNode.Index Then<BR>                    node.Nodes.Insert(targetNode.Index, draggedNode)      '将拖动节点插入到目标节点处,达到移动的效果<BR>                Else<BR>                    node.Nodes.Insert(targetNode.Index + 1, draggedNode)    '将拖动节点插入到目标节点处,达到移动的效果<BR>                End If<BR>            End If<BR>            targetNode.Expand()         '展开目标节点<BR>        End If<BR>    End Sub</P>
<P>    '在将对象拖到控件的边界上发生<BR>    Private Sub TreeView1_DragOver1(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView1.DragOver<BR>        '获得目标节点的工作区坐标<BR>        Dim targetPoint As Point = TreeView1.PointToClient(New Point(e.X, e.Y))<BR>        '获得目标节点,将其变为当前选中节点<BR>        TreeView1.SelectedNode = TreeView1.GetNodeAt(targetPoint)<BR>    End Sub</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部