Unable to call IGraphicsContainer.LocateElements() in MxDocument_OpenDocument event to get PageLayout elements.
最後に公開された状態: April 6, 2018ArcGIS for Desktop
不具合 ID 番号
NIM063686
送信されました
December 18, 2010
最終更新日
June 5, 2024
適用対象
ArcGIS for Desktop
見つかったバージョン
10.0
プログラム言語
VBA
ステータス
Will Not Be Addressed
開発チームは、この問題またはリクエストを検討した結果、これに対処しないことに決定しました。 問題の「参考情報」セクションに、さらに詳細な説明が示されていることがあります。
参考情報
Currently, we have no plans to address this issue.
対処法
' Remove or comment-out the line
' Set pEnumElement = pGraphicsContainer.LocateElements(pPoint, 0.2)
' as it will be inside the Do Loop of this workaround as shown below:
Set pEnumElement = Nothing
lngCounter = 0
Do While pEnumElement Is Nothing
Set pEnumElement = pGraphicsContainer.LocateElements(pPoint, 0.2)
lngCounter = lngCounter + 1
Debug.Print lngCounter
'***************************************************************
'Using DoEvents here. Without DoEvents, pEnumElement is always
'Nothing and an endless loop will occur.
'***************************************************************
DoEvents
'********************************************************************
'This avoids endless loop whenever DoEvents is not used. This should
'not be needed with DoEvents, but is here in case DoEvents is removed,
'otherwise, endless loop occurs and document will never open.
'********************************************************************
If lngCounter > 100000 Then
Exit Function
MsgBox "Exit Function"
End If
Loop
'************************************************************************
'Alternatively to DoEvents, using MsgBox gives time for PageLayout
'elements to load. When user dismisses MsgBox, all elements have loaded.
'************************************************************************
'MsgBox "Adding stamp..."