■95790 / inTopicNo.6) |
Re[4]: プログラムから作成したコントロールの値を他のクラスから参照す |
□投稿者/ ぶなっぷ (242回)-(2020/09/24(Thu) 11:14:08)
|
以下のように、
パネルA → comboBoxA を表示
パネルB → comboBoxB を表示
パネルC → comboBoxC を表示
と決まっているなら、
TabControlがまさに適役と思われます。
http://codepanic.itigo.jp/cs/tabcontrol.html
そうではなく、コントロールの動的生成(newによる生成)にこだわるのだとしても、
決まり切ったかたまりはリソースとして管理したほうが楽ですよ。
まず、フォーム1上の パネルA/B/Cを張り替えて表示したいエリアに、
ツールボックスからPanelを貼り付けます。
ここでは貼り付けたPanelの名前をchildPanelとします。
次に、パネルA, パネルB, パネルCをUserControlとして追加します。
ソリューションエクスプローラからプロジェクトを選択し、右マウスメニューから
「追加 - ユーザーコントロール」です。
名前はそれぞれ、PanelA, PanelB, PanelCとつけたとします。
その上で、PanelA, PanelB, PanelCにそれぞれ専用のComboBoxを貼り付けます。
この状態で起動すると、childPanelのエリアには何も表示されていないかと思います。
ボタンAのClickハンドラを追加し、以下のように実装します。
private void buttonA_Click(object sender, EventArgs e)
{
childPanel.Controls.Clear();
childPanel.Controls.Add(new PanelA());
}
起動してボタンAを押すと、childPanelのエリアにPanelAが現れたはずです(^^)
あとは同様です。
private void buttonB_Click(object sender, EventArgs e)
{
childPanel.Controls.Clear();
childPanel.Controls.Add(new PanelB());
}
:
ボタンを押すたびに、PanelA, PanelB, PanelCが切り替わるかと思います。
|
|