VB6+Mo图层顺序的调整(MoveToTop、MoveTo)
object.MoveToTop 要移动图层的索引
移动图层顺序为第一层
object.MoveToBottom 要移动图层的索引
移动图层顺序为最后一层
object.MoveTo value1, value2
(value1是移动图层的索引,value2 是要移动的图层顺序)
示例:
代码:
'在窗体加载时时,给lstLayers列表添加选择集
Private Sub Form_Load()
Dim lyr As MapObjects2.MapLayer
'清空lstLayers选择集中的列表
lstLayers.Clear
'遍历当前地图中图层, 将图层名称添加至 lstLayers选择集合中
For Each lyr In Map1.Layers
lstLayers.AddItem lyr.Name
Next lyr
End Sub
'置顶图层
Private Sub Command1_Click()
'定义一个矢量图层
Dim lyr As MapObjects2.MapLayer
If lstLayers.ListIndex <> -1 Then
'移动当前选中图层至第一个
Map1.Layers.MoveToTop lstLayers.ListIndex
Map1.Refresh
lstLayers.Clear
For Each lyr In Map1.Layers
lstLayers.AddItem lyr.Name
Next lyr
'lstLayers列表默认选中第一个图层
lstLayers.Selected(0) = True
End If
End Sub
'上移图层
Private Sub Command2_Click()
Dim i As Integer
Dim lyr As MapObjects2.MapLayer
If lstLayers.ListIndex <> -1 And lstLayers.ListIndex > 0 Then
i = lstLayers.ListIndex - 1
Map1.Layers.MoveTo lstLayers.ListIndex, i
Map1.Refresh
lstLayers.Clear
For Each lyr In Map1.Layers
lstLayers.AddItem lyr.Name
Next lyr
lstLayers.Selected(i) = True
End If
End Sub
'下移图层
Private Sub Command3_Click()
Dim i As Integer
Dim lyr As MapObjects2.MapLayer
If lstLayers.ListIndex <> -1 And lstLayers.ListIndex < lstLayers.ListCount - 1 Then
i = lstLayers.ListIndex + 1
Map1.Layers.MoveTo lstLayers.ListIndex, i
Map1.Refresh
lstLayers.Clear
For Each lyr In Map1.Layers
lstLayers.AddItem lyr.Name
Next lyr
lstLayers.Selected(i) = True
End If
End Sub
'置底图层
Private Sub Command4_Click()
If lstLayers.ListIndex <> -1 Then
Map1.Layers.MoveTo lstLayers.ListIndex, Map1.Layers.Count - 1
Map1.Refresh
lstLayers.Clear
For Each lyr In Map1.Layers
lstLayers.AddItem lyr.Name
Next lyr
lstLayers.Selected(Map1.Layers.Count - 1) = True
End If
End Sub

本文介绍使用VB6结合MapObjects组件调整地图图层顺序的方法,包括置顶、置底及上下移动图层的功能实现。通过具体代码示例,展示了如何在地图加载时初始化图层列表,并在用户操作时更新图层顺序。
506

被折叠的 条评论
为什么被折叠?



