0

こんにちは、コントロールのコレクション (主に TextBox コントロール) を含む ASCX ファイルがあります。Page.LoadControl() でインスタンス化した ASCX ファイルのインスタンスを介してこれらのコントロールにアクセスする必要がありますが、これはうまく機能します。

現在、ID でコントロールを再帰的に見つけて、そのタイプのインスタンスを作成する拡張メソッドがありますが、これはやり過ぎです。

ctl.TextBox1 に移動できない理由は、VS で ascx ファイルを作成したときに .designer.cs ファイルで保護されたアクセス修飾子が設定されているためであり、これを public に変更すると気分が悪くなります。

acsx.cs に TextBox1 のパブリック フィールドが既に存在するため作成できません。また、.designer.cs ファイルを削除したくないため、すべてが失敗します。

アクセス修飾子を保護されたものからパブリックに変更するよりエレガントな方法はありますか? まだ出会ったことがありません。

4

1 に答える 1

1

Designer ファイルの修飾子を変更する代わりに、アクセスが必要なコントロールに Get/Set メソッドを追加してみてください。

于 2013-10-15T11:43:35.503 に答える