100 DateGridView mit anderen Farben bestücken

05/08/2009 - 10:02 von Tamara Mikes | Report spam
Salü alle zusammen

In einer Anwendung habe ich sicher mehr als 100 unterschiedliche
DataGridViews welche irgend welche Daten anzeigen. Das funktioniert und ist
gut so.

Nun hat jemand die Idee gehabt, wir könnten die Datagrids mit anderen Farben
ausstatten damt sie zum Konzern Logo passen. Ich habe das mal bei 3 Grids
probiert. Ich weiss nun welche Eigenschaften ich veràndern muss. Nun merke
ich aber, dass je nach Farbkombination man mehr oder weniger Elemente
anpassen muss. Wenn der Hintergrund zu dunkel wird, muss ich auch die
Schrift anpassen.

Frage:
Wie kann ich eine zentrale Funktion schreiben, welche ich einem DataGridView
anhàngen kann und dann nachtràglich anpassen? Ich stelle mir das ungefàhr so
vor:

In irgend einer Klasse:
MakeDesignDgv("DataGridView1);
MakeDesignDgv("DataGridView2);


In meiner Design Klasse:
public void MakeDesignDgv(myDataGrid){
myDataGrid.Hintergrund = color.red;
myDataGrid.Vordergrund = color.blue;
}
public void MakeDesignButton(myButton){
myButton.border = color.pink;
}

Wie mache ich den Aufruf von MakeDesign richtig? Und wie fange ich dieses
Objekt welches mir MakeDesign übergibt richtig ab? Die Eigenschaften
Hintergrund, Vordergrund Border etc mit den Farben, das habe ich im Griff.

Vielen Dank für Hinweise welche zur "Clown-Anwendung" führen... <grins>

Tamara
 

Lesen sie die antworten

#1 FrankDzaebel
05/08/2009 - 10:48 | Warnen spam
Hallo Tamara,

In einer Anwendung habe ich sicher mehr als 100 unterschiedliche
DataGridViews welche irgend welche Daten anzeigen.
Das funktioniert und ist gut so.



gut, für mich erstmal nicht, aber Du wirst Deine Gründe haben.


Wie kann ich eine zentrale Funktion schreiben, welche ich einem DataGridView
anhàngen kann und dann nachtràglich anpassen?



Ein Beispiel:

private void Form1_Load(object sender, EventArgs e)
{
foreach (DataGridView dgv in GetControls<DataGridView>(this))
MakeDesignDgv(dgv);
}

private void MakeDesignDgv(DataGridView dgv)
{
MessageBox.Show("Beispiel-Handler für: " + dgv.Name);
}

List<Control> list = new List<Control>();

List<Control> GetControls<T>(Control root)
{
if (root is T) list.Add(root);
foreach (Control c in root.Controls)
GetControls<T>(c);
return list;
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen