私は特定のプログラムで作業しています。別の拡張機能(保護されたdll、そのソースコードにアクセスしない)がそのウィンドウ内にいくつかのオブジェクト(テキスト、ラベルなど)を追加できる「メインウィンドウ」(a.k.a. "フォーム")を持っています。ウィンドウからすべてのオブジェクトを取得する方法(別のクラスから追加)
「フォーム」に追加されているすべてのオブジェクトにアクセスするにはどうすればよいですか?
典型的な拡張のここに私の例:私はすべての分類その他、匿名/アクセスできないから、-ed要素を「追加」にアクセスするために使用することができますどのようなコード
....
namespace ProgramName.Extensions {
public class MyExtensionName : ProgramName.ExtensionBase{
//here goes typical codes to add things to "form" window,like:
Draw.Arrow(MainFormObject, ArrowColor, ArrowWidth)
}
}
?そこには、 "反射"または任意の解決策はありますか?
は、 "フォーム" であることをどのように依存します。 WPFウィンドウまたはWinFormsフォームの場合は、その子について尋ねることができます。 – Evk
に依存します。これは本当に空のライブラリの知識がなければ答えられません。彼らはキャンバスにオブジェクトを描いているだけですか?運が悪いですか?それとも彼らはどこかの参照を保持していますか?あなたはIlSpyのようなツールを使って、図書館を見て自分自身を理解することができます。 –
関連するクラスに関する詳細情報が必要です。たとえば、Formクラスは何ですか?あなたはそれから派生し、AddXXXメソッドをオーバーライドできますか? –