アークマップ用のカスタムツールをVB.Netで作成しようとしています。しかし、ISelectionSetのSearch()メソッドに渡されるFeatureCursorに問題があります。
これが私のコードの一部です:
Dim pSelSet As ISelectionSet = provFSel.SelectionSet
Dim provCursor As IFeatureCursor
pSelSet.Search(spatialFilter, True, provCursor)
Dim provFeature As IFeature = provCursor.NextFeature
Search()内のprovCursorの下に青い波線が表示され、「変数'provCursor'は、値が割り当てられる前に参照によって渡されます。実行時にnull参照例外が発生する可能性があります。」私はもう試した
Dim provCursor As IFeatureCursor = New FeatureCursor
ただし、New FeatureCursorの下の波線は、「'ESRI.ArcGIS.Geodatabase.FeatureCursorClass.Friend Sub New()'は、'Friend'であるため、このコンテキストではアクセスできません」と表示します。私も試しました
Dim provCursor As IFeatureCursor = Nothing
しかし、成功しませんでした。
すべてのデバッグ試行で、Arcmapが次のエラーでクラッシュしました:タイプ「System.NullReferenceException」の最初のチャンスの例外がMicrosoft.VisualBasic.dllで発生しました
誰かが私のコードの何が問題なのかを理解するのを手伝ってもらえますか?助けていただければ幸いです。
-槍兵
上記のコードまたは以前のコードでエラーが発生したかどうかは実際にはわかりません。したがって、サブプロシージャのコンテンツ全体を投稿します。
Dim pPoint As IPoint = pMxDoc.CurrentLocation
Dim provFSel As IFeatureSelection = provinceLayer
Dim pGeom As IGeometry = pPoint.Shape
Dim spatialFilter As ISpatialFilter = New SpatialFilter
With spatialFilter
.Geometry = pGeom
.SpatialRel = esriSpatialRelEnum.esriSpatialRelWithin
End With
Dim pSelSet As ISelectionSet = provFSel.SelectionSet
Dim provCursor As IFeatureCursor
pSelSet.Search(spatialFilter, True, provCursor)
Dim provFeature As IFeature = provCursor.NextFeature