cher0731
路人甲
路人甲
  • 注册日期2004-10-28
  • 发帖数40
  • QQ
  • 铜币189枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1154回复:1

请教大虾们两个很EASY的问题

楼主#
更多 发布于:2004-11-04 20:39
<P>下面是我在刘光老师编的书上抄的一段代码,可是结果却和他的不一样.</P>
<P>Dim shplayer As New MapObjects2.MapLayer
Dim dc As New MapObjects2.DataConnection
Dim gds As MapObjects2.GeoDataset
Dim fname As String</P>
<P>Private Sub open_Click()
CommonDialog1.DialogTitle = "打开.shp文件"
CommonDialog1.Filter = "ESRI Shapefile(*.shp)|*.shp"
CommonDialog1.CancelError = True
On Error GoTo errortrap
CommonDialog1.ShowOpen
If Len(CommonDialog1.FileName) = 0 Then Exit Sub
dc.Database = CurDir
If Not dc.Connect Then Exit Sub
fname = Left(CommonDialog1.FileTitle, Len(CommonDialog1.FileTitle) - 4)
Set gds = dc.FindGeoDataset(fname)
If gds Is Nothing Then Exit Sub
Set shplayer.GeoDataset = gds
Map1.Layers.Add shplayer
Exit Sub
errortrap:
If Err.Number <> 32755 Then
MsgBox Err.Description, vbCritical
End If
Map1.Refresh</P>
<P>End Sub</P>
<P>可是用这种方法加载图层后,只能显示第一次加载的图层,后面加载的没有.大家说问题在哪?</P>
<P>还有就是我得legend不是可以自动显示图层名称吗?怎么我得没有反应?</P>
<P>我写了如下代码:</P>
<P>在form_load:</P>
<P>legend1.setmapsource.map1</P>
<P>legend1.loadlegend true</P>
<P>在legend1_aftersetlayervisible</P>
<P>map1.refresh</P>
<P>请问还要在哪个地方写些什么代码才行吗?</P>
喜欢0 评分0
cher0731
路人甲
路人甲
  • 注册日期2004-10-28
  • 发帖数40
  • QQ
  • 铜币189枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-11-05 10:25
<P>自己先顶一下,我今天又在toolbar的click里又加了一个刷新,但是它只能显示最后打开的一个文件。如果不用instr函数,请问还有什么方法可以打开多个文件吗?没有必要一次打开的。怎么没人跟帖?失败</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部