2011-02-16 7 views
0

別のフォームからラベル、テキストボックス、およびコンボボックスにアクセスするよう求められています。これを使用して、メインフォームへの入力フォームから は:別のフォームからラベルとコンボボックスにアクセスするC#

frmInput input = new frmInput(); 

これ^^は私の主な形態です。 "intelesense"を使用すると、ラベルや必要なものが表示されません。 提案?

+3

ビジネス要件が必要であり、ビジネス要件を満たす方法で実装するように指示した人に、フォームのコントロールを別のフォームに公開することなく、そうすることができます。 –

+2

ビジネスオブジェクトであるUI要素の道を踏み外さないでください。あなたがそれに感謝します。 –

+0

私は先生から私に与えられたコードで、私はちょうど表示されているようにfrminputフォームを宣言し、私はちょうどそれらにアクセスできると言うので、私はこれを行うように頼んだ。そして、私はできないので、私は少し失われているすべてです。^-^ –

答えて

4

デフォルトでは、GUI要素はプライベートアクセスで定義されているためです。公開する場合は、これらの要素の独自のプロパティを定義します。メインフォームへの参照を入力フォームに渡す必要もありますが、推奨しません。

代わりに、イベントを使用してフォーム間でデータをやり取りし、レンダリングをコントロールの親フォームに保持できます。

+3

+1はおすすめしません。しかし、自分で定義する必要はありません。デザイナーを介してアクセスを設定することができます。 Propertiesウィンドウで、 "Modifiers"プロパティを変更します。しかし、私は決してそれを言ったふりをしましょう、よろしいですか? –

+1

+1のふりをする...:P ............そして、私がなぜデフォルトで言及したのかということで、それらのプロパティを定義するために、必要なプロパティを設定または取得するためのプロパティそのコントロールのための.. lable1.Text; –

+0

その小さなチップをありがとう。皮肉なことに、私はModifierをpublicに変更しようとしていたという事実を見ました。 >>「私は何かを予見したことがあるだろう。ありがとう。 –

1

コントロールはプライベートまたはプロテクトされていると宣言でき、そのためアクセスできません。しかし、あなたは公開したり、名前でアクセスしたりすることができます:

input.Controls["someButtonName"] 
関連する問題