当前位置:编程学习 > C#/ASP.NET >>

VB.NET+MAPX查询问题

Dim FindObj As MapXLib.Find
        Dim FoundFeature As MapXLib.FindFeature
        '从要查询的RTU图层生成Find对象,并为这个对象设置要查询的FindDataSet、FindField属性
        FindObj = AxMap1.Layers.Item(1).Find
        FindObj.FindDataset = AxMap1.DataSets(Me.ComboBox2.Text & "dataset") '("RTU节点" & " dataset")
        FindObj.FindField = FindObj.FindDataset.Fields(Me.ComboBox2.Text) '("RTUName")

        FoundFeature = FindObj.Search(ComboBox1.Text)

        Me.Hide()
        ' 关掉AutoRedraw是因为CenterX(Y)的改变就要刷新图层,AutoRedraw打开的话会造成二次刷新
        AxMap1.AutoRedraw = False
        Me.Show()



--------------------------------------------
编译通过后
Me.ComboBox2.Text 中输入图层名
ComboBox1.Text中输入内容
     “FindObj.FindDataset = AxMap1.DataSets(Me.ComboBox2.Text & "dataset")”这行总是提示 “No object was found using the index you specified.”
请问是怎么了? --------------------编程问答-------------------- 没人知道吗? --------------------编程问答-------------------- 谁知道告诉小弟啊 --------------------编程问答-------------------- AxMap1.DataSets之前add过么?
你的代码有问题,觉得你至少也要写成axmap1.datasets.item()什么的吧? --------------------编程问答-------------------- 所有代码是:
      Dim lyR As MapXLib.Layer
        Dim findobj As MapXLib.Find
        Dim findStr As String
        Dim i As Short
        Dim fdat As MapXLib.FindFeature
        Dim layerds As MapXLib.Dataset
        Dim fid As MapXLib.Field
        On Error Resume Next
        TreeView1.Nodes.Clear()
        Dim result As Integer
        '数据绑定
        For Each lyR In AxMap1.Layers
            AxMap1.DataSets.Add(MapXLib.DatasetTypeConstants.miDataSetLayer, lyR, lyR.Name)
        Next lyR

        findStr = TextBox1.Text.Trim  '输入查询目标"
        Dim X As MapXLib.Field  'Field查询字段,和find.DataSets属性一起使用
        For i = 1 To AxMap1.Layers.Count  '查询每一层
            findobj = AxMap1.Layers(i).Find '查找的对象是第*层
            layerds = AxMap1.DataSets.Item(AxMap1.Layers(i).Name) '查询数据集Item(列名)
            findobj.FindDataset = Me.AxMap1.DataSets(AxMap1.Layers(i).Name) 'FindDataset查询数据集
            For Each fid In layerds.Fields
                findobj.FindField = findobj.FindDataset.Fields(fid) 'Field查询字段
                fdat = findobj.Search(findStr)
                'AxMap1.CenterX = fdat.CenterX
                'AxMap1.CenterY = fdat.CenterY
                AxMap1.Layers(i).Selection.se.Replace(fdat) '添加网格表示选取(高亮)
                ' AxMap1.Layers(i).ClearSelection()
            Next fid
        Next
        'If fdat = "" Then MsgBox("没有找到任何数据!", , "提示")
        'AxMap1.AutoRedraw = False    ' (禁止自动刷新)
        Me.AxMap1.DataSets.RemoveAll()

--------------------------------------------
编译通过后
Me.ComboBox2.Text 中输入图层名
ComboBox1.Text中输入内容
     “FindObj.FindDataset = AxMap1.DataSets(Me.ComboBox2.Text & "dataset")”这行总是提示 “No object was found using the index you specified.”
请问是怎么了? --------------------编程问答--------------------    For Each lyr In fMainForm.Map1.Layers
       fMainForm.Map1.DataSets.Add miDataSetLayer, lyr, lyr.Name & " dataset"
   Next
      试试这样看看行不?
补充:.NET技术 ,  VB.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,