2009-11-16 19 views
13

私はprogram.csからコントロールのテキストプロパティにアクセスしようとしていて、保護されたレベルのためにアクセスできないと言います。どうすればいいですか?コントロールが保護レベルのためにアクセスできないのはなぜですか?

+1

達成しようとしていることは何ですか? –

+2

FWIW、このような質問は、あなたが非常に緊密な結合のパスを下っていることを意味します(myForm.myControl.TextにアクセスするのはmyFormのコード外です)。 –

+0

これは安全でない可能性があるため、これは悪い考えですか?または他の理由もありますか? –

答えて

24

これはコントロールの既定のプロパティで、指定されたコントロールを含むフォームのデザインビューに移動し、コントロールの修飾子プロパティをパブリックまたは内部に変更することで解決できます。そうしなければならない! :)の後ろ公共修飾子

+3

注:これはAskerによって非常に不明であったように強調しておきますが、これはコントロールのインスタンス(*コントロール) .Text'プロパティ*はpublicです。 – Abel

+1

ありがとうございました。 –

4

コントロール保護レベル解決

ゴー保護修飾子コンセプトは保護レベルです。オブジェクト指向のパラダイムで学んだように、クラスメンバーの変数をプライベートにしてProperty.Thatsから取得してください。なぜそれが良いアプローチではないのですか?

+2

これは良い考えではありません。コントロールが使用されているクラスのプロパティを介してコントロールの値にアクセスする方がよい。 – eridanix

+1

なぜこれは良いaproachですか?簡単に説明すると、 – Asad

+0

はデザインファイルがありませんでした...ポインタのおかげで –

0

にID例えばtxtModel変化によってデザイナーのファイル検索制御に

関連する問題