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