Hallo Leute,
ich habe in DropDown Menue gebastelt das 5 Buttons und 5 Panels enthät. Bei klick auf einen Button wird das zugehörige Panel angezeigt.
Auf den 5 Buttons werden die Images von Pfeilen angezeit, Pfeil nach unten wenn das zugehörige Panel angezeigt wird und Pfeil nach rechts wenn das zugehörige Panel nicht angezeigt wird.
Alles funktioniert.
Um den Status eines Buttons anzuzeigen nutze ich für jeden Button eine integer Variable die den Status (angeklick und Panel angezeigt/ nich angeklickt Panel nicht angezeigt). Button 1 _cmd01Status bis Button 5 _cmd05Status.
Meine Frage ist: Gibt es eine einfachere Möglichkeit ohne dass ich 5 Variablen definieren muss, mir kommt das ein wenig unellegant vor?
Das ist der Code:
Spoiler anzeigen
Spoiler anzeigen
Das kleine Demoprogramm habe ich angehängt!
Viele Grüße und bleibt gesund,
Duster
ich habe in DropDown Menue gebastelt das 5 Buttons und 5 Panels enthät. Bei klick auf einen Button wird das zugehörige Panel angezeigt.
Auf den 5 Buttons werden die Images von Pfeilen angezeit, Pfeil nach unten wenn das zugehörige Panel angezeigt wird und Pfeil nach rechts wenn das zugehörige Panel nicht angezeigt wird.
Alles funktioniert.
Um den Status eines Buttons anzuzeigen nutze ich für jeden Button eine integer Variable die den Status (angeklick und Panel angezeigt/ nich angeklickt Panel nicht angezeigt). Button 1 _cmd01Status bis Button 5 _cmd05Status.
Meine Frage ist: Gibt es eine einfachere Möglichkeit ohne dass ich 5 Variablen definieren muss, mir kommt das ein wenig unellegant vor?
Das ist der Code:
C#-Quellcode
- public partial class Form1 : Form
- {
- private int _cmd01Status = 1;
- private int _cmd02Status = 1;
- private int _cmd03Status = 1;
- private int _cmd04Status = 1;
- private int _cmd05Status = 1;
- public Form1()
- {
- InitializeComponent();
- FlpMain.AutoScroll = true;
- FlpMain.Parent = OuterPanel;
- FlpMain.Location = new Point(0, 0);
- OuterPanel.Width = FlpMain.Width - SystemInformation.VerticalScrollBarWidth;
- OuterPanel.Height = FlpMain.Height - SystemInformation.VerticalScrollBarWidth;
- HideSubMenu();
- }
- private void HideSubMenu()
- {
- Pnl_01.Visible = false;
- Pnl_02.Visible = false;
- Pnl_03.Visible = false;
- Pnl_04.Visible = false;
- Pnl_05.Visible = false;
- }
- private static void ShowSubMenu(Panel subMenu)
- {
- if (subMenu.Visible == false)
- {
- subMenu.Visible = true;
- }
- else
- {
- subMenu.Visible = false;
- }
- }
- private static void UpdateButton(Button btn, int clickStatus)
- {
- switch (clickStatus)
- {
- case 1:
- {
- btn.Image = Resources.arrow_right;
- break;
- }
- case -1:
- {
- btn.Image = Resources.arrow_down;
- break;
- }
- }
- }
- private void Cmd_01_Click(object sender, EventArgs e)
- {
- _cmd01Status *= -1;
- UpdateButton(Cmd_01, _cmd01Status);
- ShowSubMenu(Pnl_01);
- }
- private void Cmd_02_Click(object sender, EventArgs e)
- {
- _cmd02Status *= -1;
- UpdateButton(Cmd_02, _cmd02Status);
- ShowSubMenu(Pnl_02);
- }
- private void Cmd_03_Click(object sender, EventArgs e)
- {
- _cmd03Status *= -1;
- UpdateButton(Cmd_03, _cmd03Status);
- ShowSubMenu(Pnl_03);
- }
- private void Cmd_04_Click(object sender, EventArgs e)
- {
- _cmd04Status *= -1;
- UpdateButton(Cmd_04, _cmd04Status);
- ShowSubMenu(Pnl_04);
- }
- private void Cmd_05_Click(object sender, EventArgs e)
- {
- _cmd05Status *= -1;
- UpdateButton(Cmd_05, _cmd05Status);
- ShowSubMenu(Pnl_05);
- }
- }
Das kleine Demoprogramm habe ich angehängt!
Viele Grüße und bleibt gesund,
Duster