をAutocad Plugin
使用して正常に動作する をWindows Forms
作成しuser control (winforms)
ており、将来好きな形で複製する を作成しました。
質問は
コントロールのコードから、そのコントロールを実行しているアプリケーションのインスタンスを取得するにはどうすればよいですか?
(おそらく純粋な winforms の問題)
条件:
プラグイン内で、問題なく Autocad アプリケーション インスタンスを取得できます。
このユーザー コントロールはseparate assembly (dll)
、プラグイン アプリケーションで参照されるようになっているため、アプリケーション インスタンスに直接アクセスすることはできません。
シナリオについての簡単な説明:
Main Assembly
プラグインとしてAutocadによって実行されています。そのアセンブリには、Autocad アプリケーションがインスタンス化されています。
これで、Autocad で作業するための便利なフォーム コントロールがいくつかあり、それらはseparate assembly
. (それは、私が好きなだけ多くの異なるプラグインでそれらを使用したいからです)。
そのため、Autocad は を実行しmain assembly
、main assembly
のコントロールを実行しますseparate assembly
。
適切に動作させるために、これらのコントロールは、main assembly
.
今日、私はアプリケーションをコントロールのプロパティとして使用しています。コントロールを操作する前に設定する必要があります。(設定を忘れると、例外が発生します)。作成者がパラメータを取るコントロールを持つことはできないので。
コントロールが実行中のアプリケーションを検出するようにしたいので、その回避策を避けます。