Hallo,
wenn die Eigenschaft wirklich überall gleich heißt, gibt es eine Möglichkeit. Du kannst in dem Fall alle Elemente durch gehen und deren Eigenschaft setzen. Bei Containern (wie Panel) musst du natürlich deren Unter-Controls auch mit setzen:
private void button1_Click(object sender, EventArgs e)
{
SetBackColor(this, Color.Red);//Aufruf
}
void SetBackColor(Control container, Color backColor)
{
foreach (Control c in container.Controls)
{
if (c.Controls.Count > 0)
SetBackColor(c, backColor);//Unterelement gefunden
else
c.BackColor = backColor;//Hintergrundfarbe setzen
}
}
Je nachdem, was genau du vorhast musst du natürlich die Methode abändern.
Ob sich das alles jedes in WinForms wirklich lohnt mag ich zu bezweifeln. In WPF könnte man allgemeine, komplett frei anpassbare Styles für jedes CDontrol schreiben. Diese zählen dann immer. Dort wäre eine Designänderung in 3 Zeilen abgetan. WPF benötigt
aber auch eine gewisse einarbeitungszeit. Wenn du mehr wissen willst:
Einführung in WPF
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als
Antwort und bewertet Beiträge. Danke.