AutoCAD .NET API :ドラッグシーケンス中の画面移動

Autodesk Support

2022年6月5日


Issue

パレットやモードレス ダイアログにボタンを配置して、Editor.SetCurrentView メソッドで画面移動出来るようにしています。

    Private _doc As Document = Nothing
    Private _vtr As ViewTableRecord = Nothing
    Private _initial As ViewTableRecord = Nothing

...

        _doc = Application.DocumentManager.MdiActiveDocument
        _initial = _doc.Editor.GetCurrentView()
        _vtr = TryCast(_initial.Clone(), ViewTableRecord)
 

...

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        _vtr.CenterPoint = _vtr.CenterPoint + New Vector2d(0.0, CDbl(TextBox1.Text))
        _doc.Editor.SetCurrentView(_vtr)
        _doc.Editor.UpdateScreen()
    End Sub

通常、この方法で問題なく画面移動出来ますが、Jig クラスから派生したカスタム クラスを利用したドラッグシーケンス中に、ボタンクリックによる画面移動がリアルタイムに反映さません。どうすれば画面移動をリアルタイムに反映出来ますか?

 

Solution

画面の更新には、フォーカスが作図ウィンドウにある必要があります。MdiActiveDocument.Window.Focus メソッドを呼び出して、フォーカスが作図ウィンドウに移るよう制御してください。

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        _vtr.CenterPoint = _vtr.CenterPoint + New Vector2d(0.0, CDbl(TextBox1.Text))
        _doc.Editor.SetCurrentView(_vtr)
        Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Window.Focus()
        _doc.Editor.UpdateScreen()
    End Sub



この情報は役に立ちましたか?


サポートが必要な場合は、Autodesk Assistant にお問い合わせください!

Assistant が回答を見つけたり、担当者に連絡するお手伝いをします。


オートデスクではどのようなサポートが提供されますか?

ご利用可能なサポートの種類は、サブスクリプションのプランによって異なります。現在のプランでご利用可能なサポート レベルをご確認ください。

サポート レベルを確認