ユーザーが情報を入力できるAutoCAD用のC#プラグインを作成しました。その後、適切な図面をオープンエンドにする必要があります。
実際のワークフローは次のようになります。
- AutoCAD でプラグインを開始します
- ユーザーは、現在アクティブな図面の上にある Windows フォームにいくつかの情報を入力できます。
- ユーザーが入力ボタンを押すと、新しい図面が開かれます
- ユーザーが何らかの情報を入力したフォームを閉じる必要があります (正常に動作します)。
- 新しいウィンドウフォームを開いて、他の情報を入力する必要があります(最初のウィンドウと同じウィンドウではありません)が、新しい図面では
問題は、最初のウィンドウを正しく閉じて、新しい図面を正しく開くことができることです。このような:
DocumentCollection documentCollection = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager;
if (File.Exists(absoultePathOfDrawing))
{
Document newDrawing = documentCollection.Open(absoultePathOfDrawing, false);
Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument = newDrawing; // this sets the new drawing as the active one ==> is on top
}
Dispose(); // closes the first form
DialogResult = DialogResult.OK; // tells my applciation that the first window was successfully closed
フォームは正しく閉じられ、その後、次の方法で新しいフォームを開こうとします。
if (result == DialogResult.OK)
{
MessageBox.Show("Test");
}
しかし、今は新しい図面が上にあり、古い図面が後ろにあります。古い図面に戻ると、新しい MessageBox が表示されますが、アクティブなドキュメントを新しい図面に設定したため、実際には新しい図面に表示されるはずです。私は何を間違っていますか?