私は作成したComponentクラスの一意の識別子を生成し、その値をControl.IDとして使用します。この一意の値は任意の方法で生成できますが、データベーステーブルの一部として格納しています。最終的には、クラスがインスタンス化されるときに値が初期化され、アプリケーションの実行中に一貫しているので、それほど重要ではありません。
クラスは、プライベートインスタンス変数を持っています
private Control _control;
フォーム(及び、具体的には、プレースホルダ)私はこれに似何かをするにコントロールを追加します。 c
は私の作成したクラスを参照しています。
c.Control.ID = c.ComponentName + c.UniqueIdentifier;
phHere.Controls.Add(c.Control);
私は本質的に上記の手順を逆に後の時点でコントロールを参照する必要があるときに:
string component = c.ComponentName + c.UniqueIdentifier;
UserControl uc = (UserControl)ph.FindControl(component);
うまくいけば、このことができます。ご不明な点がございましたら、お気軽にお問い合わせください。しかし、問題の根源は、エラーを回避するためにControl.IDを設定する必要があるということです。
ありがとうございました
このMcArtheyで進歩したことはありますか?私はちょうど同じようなものに遭遇しています:( – Mordy
はい、私はこの回答を更新しないと申し訳ありませんが、私はあなたに質問をしながら私に連絡しています。それが決して答えられなかった理由を説明してください。 – McArthey