Laden...

[erledigt] Viele Panels: Hintergrundfarbe des gerade geklickten Panels ändern, ohne redundanten Code

Erstellt von atlantaphoenix vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.781 Views
Thema geschlossen
A
atlantaphoenix Themenstarter:in
11 Beiträge seit 2011
vor 12 Jahren
[erledigt] Viele Panels: Hintergrundfarbe des gerade geklickten Panels ändern, ohne redundanten Code

Hallo allerseits,

ich habe verschiedene Panels in meiner Windows-Form. Jedes Panel soll, nachdem es angeklickt wurde, die Farbe ändern. Das Problem ist, dass ich sehr viele dieser Panels habe und ich jedes Mal den Namen des jeweiligen Panels anpassen muss. Gibt es eine Möglichkeit, das Ganze einheitlich zu gestalten?

private void panel4_Click(object sender, EventArgs e)
        {
            if (radioButton25.Checked)
                panel4.BackColor = Color.Blue;
            if (radioButton26.Checked)
                panel4.BackColor = Color.Orange;
            if (radioButton24.Checked)
                panel4.BackColor = Color.Red;
            if (radioButton29.Checked)
                panel4.BackColor = Color.White;
            if (radioButton28.Checked)
                panel4.BackColor = Color.Green;
            if (radioButton27.Checked)
                panel4.BackColor = Color.Brown;
        }

In diesem Beispiel müsste ich, wenn ich den Code kopiere und z.B. für das Panel "panel5" benutzen möchte, jedes Mal "panel4.BackColor" in "panel5.BackColor" verändern. Ist es vielleicht möglich, eine Variable dafür einzusetzen, die auf das Ereignis "panel4-Click" zugreift?

A
118 Beiträge seit 2009
vor 12 Jahren

Verwende für alle den gleichen EventHandler. Dann kannst du nämlich:


private void panel_Click(object sender, EventArgs e)
{
      ((Panel)sender).BackColor = Color.Blue;
}

Mfg
Aratar

1.552 Beiträge seit 2010
vor 12 Jahren

Hallo atlantaphoenix,
sender beihnhaltet jenes Control in deinem Fall das Panel welches geklickt wurde. Also dementsprechend Casten und dies Sache hat sich.
Achja: Zusätzlich sollte jedes Panel diese Methode als Click-Event abonniert bekommen.

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

A
atlantaphoenix Themenstarter:in
11 Beiträge seit 2011
vor 12 Jahren

Perfekt!!!

Genau das habe ich gebraucht!!! Es funtioniert wunderbar und ich muss nicht die ganzen Codes abschreiben. 🙂

Vielen Dank!

Hinweis von herbivore vor 12 Jahren

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und 1.1.

Thema geschlossen