Frage von Diabetiger, 34

Visual Studio, C#: Einen Variablen Button z.B. färben?

Hallo,

Ich bin zur Zeit dabei ein Programm zu schreiben, in dem ich sehr viele Knöpfe( zur Zeit 384) habe und jeden einzelnen per Click Blau oder Weiß färben will. Ich bin schon soweit, dass ich beim Druck auf einen Knopf seine ID bekomme, weiß aber nicht wie ich jetzt eine Funktion baue, in der ich den einzelnen Button färben kann. Ich will ungern für jeden einzelnen Button eine if-abfrage schreiben.

Schonmal Danke im Vorraus

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von DerHackerWolf, 22

Hallo Diabetiger,

als erstes erstellst du in deinem Script (Standardname ist meistens "Form1.cs") eine Methode mit folgender Signatur:

private void ChangeColor(object sender, EventArgs e)
{
}

Ich habe die Methode ChangeColor genannt, damit man sie besser identifizieren kann.
Die Parameter sind wichtig, damit ein Button die Methode bei einem Click-Ereignis aufrufen kann.

Als nächstes fügst du die Methode jedem Button hinzu. Ich gehe mal davon aus, dass du das hinbekommst, ansonsten einfach kurz melden.

Wenn das erledigt ist, noch schnell der Code für die Methode ChangeColor. Ich bin der Einfachkeithalber davon ausgegangen, dass du mit jedem Klick zwischen den beiden Farben Color.Blue und Color.White wechseln möchtest. Falls du eine andere Funktionalität verfolgen möchtest, weißt du nun zumindest, wie du den Button in dieser Funktion benutzen kannst.

private void ChangeColor (object sender, EventArgs e)
{
// Als erstes den Button holen.
// Dieser steckt im sender object
Button btn = (Button) sender;

// Wechseln zwischen den Farben
if (btn.BackColor == Color.White)
btn.BackColor = Color.Blue;
else
btn.BackColor = Color.White;
}

Ich hoffe, ich konnte dir helfen.
Bei Fragen einfach melden!

Mit freundlichen Grüßen

Antwort
von Wissididom, 22

Ich bin mir zwar nicht sicher, aber ich glaube, dass im ClickEvent der Parameter sender As Object den Button mitliefert, der geklickt worden ist, das heißt, dass du wahrscheinlich z. B. sender.BackColor=Color.Blue schreiben musst. Wie gesagt, damit habe ich noch nie gearbeitet, aber es könnte funktionieren

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten