FAQ
プログラミングで選択したフィーチャを回転できない

ナレッジ番号:5520 | 登録日:2023/07/27 | 更新日:2024/11/21

【概要】

編集セッションでフィーチャ選択ツールや編集ツールを使用してフィーチャを選択するとエディタツールバーの回転ツールがアクティブになり、選択したフィーチャを回転することができます。しかし編集セッション内でプログラミングによってフィーチャを選択し、回転ツールをアクティブにしてもフィーチャを回転させることができません。


【原因】

回転ツールが完全にアクティブになる前に、ISelectionEvents::SelectionChangedイベントが発生する必要があります。エディタは選択フィーチャのジオメトリを結合しアンカーポイントを設定するためにSelectionChangedイベントを使用します。このイベントが発生しない場合、回転させるための結合したジオメトリが存在せず、アンカーポイントも作成されません。


【解決策】

以下のサンプルコードを使用してISelectionEvents::SelectionChangedイベントを発生させてからフィーチャを選択します。


Sub SelectionChanged()

  Dim pDoc As IMxDocument
  Dim pMap As IMap
  Dim pLayer As IFeatureLayer
  Dim pFc As IFeatureClass
  Dim pSelSet As ISelectionSet
  Dim pFSel As IFeatureSelection
  Dim pSelEvents As ISelectionEvents

  Set pDoc = ThisDocument
  Set pMap = pDoc.FocusMap
  Set pLayer = pMap.Layer(0)
  Set pFc = pLayer.FeatureClass

  '選択セットを取得します
  Set pSelSet = pFc.Select(Nothing, 1, 1, Nothing)

  '選択セットをレイヤに反映します
  Set pFSel = pLayer
  Set pFSel.SelectionSet = pSelSet

  'SelectionChangedイベントを発生させます
  Set pSelEvents = pMap
  pSelEvents.SelectionChanged

  '再描画を行います
  pDoc.ActiveView.Refresh

End Sub

メタデータ

種類

製品