C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

panelについて /から好し (20/11/19(Thu) 13:51) #96390
Re[1]: panelについて /魔界の仮面弁士 (20/11/19(Thu) 14:23) #96391
  └ Re[2]: panelについて /から好し (20/11/19(Thu) 15:20) #96392 解決済み


親記事 / ▼[ 96391 ]
■96390 / 親階層)  panelについて
□投稿者/ から好し (6回)-(2020/11/19(Thu) 13:51:32)
から好し さんの Web サイト

分類:[.NET 全般] 

開発環境 VS2019
使用言語 C# Windowsフォーム


現在、フォーム上に5枚程度のパネルとそれに対応するボタンがあります。


ボタンA    パネルA
ボタンB    パネルB
ボタンC    パネルC
ボタンD    パネルD
ボタンE    パネルE

ボタンAを押された時パネルAが表示され、ボタンBが押された時パネルBが表示されるという感じです。
今現在は、ボタン毎に同じ処理を繰り返し書いていて非常に無駄が多いとは思うのですが
どうしたら、上手く書けるか分かりません。
例えば、処理内容は同じで違うのはボタンとパネルの名前だけなので,
なんとなくまとめれそうだとは思うのですが・・・・。

if(ボタンの配列[i].Checkd)としてもダメでした。

ちなみ、ボタンを配列にするのはここを参考に作成しました。
https://dobon.net/vb/dotnet/control/buttonarray.html


以上です。
何か良アイディアがありましたら、ご教示ください。





[ □ Tree ] 返信 編集キー/

▲[ 96390 ] / ▼[ 96392 ]
■96391 / 1階層)  Re[1]: panelについて
□投稿者/ 魔界の仮面弁士 (2918回)-(2020/11/19(Thu) 14:23:36)
No96390 (から好し さん) に返信
> ボタンAを押された時パネルAが表示され、ボタンBが押された時パネルBが表示されるという感じです。

// ボタンとパネルの対応表
private Dictionary<object, Panel> panels = new Dictionary<object, Panel>();

// ボタンとパネルの関連付け
private void Form1_Load(object sender, EventArgs e)
{
  panels.Add(button1, panel1);
  panels.Add(button2, panel2);
  panels.Add(button3, panel3);
}


// 下記のイベントハンドラに、全てのボタンの Click イベントを割り当てておく
private void buttons_Click(object sender, EventArgs e)
{
  foreach (var panel in panels.Values)
  {
    panel.Hide();
  }
  panels[sender].Show();
}
[ 親 96390 / □ Tree ] 返信 編集キー/

▲[ 96391 ] / 返信無し
■96392 / 2階層)  Re[2]: panelについて
□投稿者/ から好し (7回)-(2020/11/19(Thu) 15:20:26)
から好し さんの Web サイト
No96391 (魔界の仮面弁士 さん) に返信


出来ました!!
ありがとうございます。


解決済み
[ 親 96390 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -