0

フォーム (Form1) とその上にボタンがあります。そのボタンを押すと、次のように宣言されたパネルの配列に格納されたランタイム パネルが作成されます。

 Panel[] Panouri_variabile = new Panel[20];

ボタンを押すと、パネルが作成されます。ボタンをもう一度押すと、前のパネルの下に別のパネルが作成されます。

各パネルには、その中にテキスト ボックスがあります。明らかに、テキスト ボックスは、次のように宣言されたテキスト ボックスの配列に格納されます。

 TextBox[] Nume_variabila = new TextBox[20];

ユーザーは、各パネルの各テキスト ボックスに何かを書き込みます。

ここで、ユーザーがこれらのテキストボックスに書き込んだデータに、別のフォームから次のようにアクセスしたいと思います。

 Form1 form = new Form1();
 form.Panouri_variabile[i].Nume_variabila[i].Text

すべてのコントロールのModifierプロパティをpublicに設定するだけで、パネルと texbox がデザインタイムに作成される場合、これは簡単に実行できます。

問題は、それらが実行時に作成されるため、 Modifierプロパティを変更できないことです。

多くの検索の後、次の可能な解決策を見つけました。

 Panel new_Panel = Panouri_variabile[i];

そして、イベントと同じレベルで次のプロパティを宣言します-ハンドラーは(クラスレベルだと思います)

 public Panel new_Panel { get; private set; }

別のフォームから new_Panel を表示できることに気付いたので、次のようにアクセスできます。

 Form1 form = new Form();
 form.new_Panel

しかし、それがインデックス可能ではないという問題!パネルの配列 (および texbox の配列) があるので、上で指定したように、 indexを使用してそれらにアクセスする必要があります。

別のフォームからこれらのテキストボックスにアクセスする方法はありますか? それとも、設計時に作成する必要がありますか?

4

0 に答える 0