我正在制作一个包含Mapwingis
和 Dim scheme As New MapWinGIS.ColorScheme
Dim idx As Integer
idx = FormMain.TreeViewLayer.Nodes.IndexOf(FormMain.TreeViewLayer.SelectedNode)
sf = FormMain.AxMapMain.get_Shapefile(idx)
mainMapHandler = FormMain.AxMapMain.AddLayer(sf, True)
sf = FormMain.AxMapMain.get_Shapefile(mainMapHandler)
Dim fieldName As Integer
fieldName = CBSymVarNameUnique.SelectedIndex
sf.Categories.Generate(fieldName, MapWinGIS.tkClassificationType.ctUniqueValues, 0)
filcol = Convert.ToUInt32(RGB(255, 255, 255))
filcol2 = Convert.ToUInt32(RGB(0, 0, 255))
scheme.SetColors(filcol, filcol2)
Dim nama2() As String = New String() {}
For i As Integer = 0 To sf.Categories.Count - 1
Dim category As MapWinGIS.ShapefileCategory = sf.Categories.Item(i)
nama2(i) = category.Name.Substring(category.Name.IndexOf("=") + 1) 'error here
Next
的地图应用。
我想用数组保存地图数据,但任何错误。
这段代码:
...
<td valign="top" class="topBorderLight"><span class="redFonts grade">5</span></td>
...
你能帮助我吗?
答案 0 :(得分:1)
在这一行
Dim nama2() As String = New String() {}
声明一个字符串数组,没有任何空间来存储字符串。此数组的Length
为零。
当然,当你写作
nama2(i) = category.Name.Substring(.....)
代码崩溃,因为没有空间来存储数组中的元素
您需要使用appropriare空间声明数组,以存储您计划检索的字符串
Dim nama2(sf.Categories.Count-1) As String
但是我建议使用List(Of String)
并根据需要将元素添加到此列表中
Dim nama2 = New List(Of String)()
For i As Integer = 0 To sf.Categories.Count - 1
Dim category As MapWinGIS.ShapefileCategory = sf.Categories.Item(i)
nama2.Add(category.Name.Substring(category.Name.IndexOf("="))
Next