DataGridView - Fehlerhafte Anzeige

03/03/2010 - 16:01 von Dani_M | Report spam
Hi @all!

Ich habe das DataGridView Steuerelement wohl etwas Überfordert. Meine
Columns (20 Stück) werden mittels DataBinding erzeugt.
Das funktioniert auch wunderbar jedoch gibt es ab und an kleine Fehler in
der Anzeige. Die Buchstaben der Header werden Fehlerhaft dargestellt. Jedoch
wenn man mit der Maus über den Header fàhrt wird dieser wieder richtig
angezeigt.

Gibt es eine Beschrànkung wieviele Columns in einem DataGridView angezeigt
werden können?

Gruß,

Daniel
 

Lesen sie die antworten

#1 Frank Dzaebel
03/03/2010 - 20:18 | Warnen spam
Hallo Dani,

Ich habe das DataGridView Steuerelement wohl etwas Überfordert.



IMHO hier nein.



Meine Columns (20 Stück) werden mittels DataBinding erzeugt.



ok, das ist an sich nicht viel.
Insgesamt sind vielleicht vom Design her sehr viele
Spalten nicht besonders sinnvoll.


Das funktioniert auch wunderbar jedoch gibt es ab und an kleine Fehler
in
der Anzeige. Die Buchstaben der Header werden Fehlerhaft dargestellt.
Jedoch
wenn man mit der Maus über den Header fàhrt wird dieser wieder richtig
angezeigt.



Das können zum einen Effekte aus virtuellen Maschinen oder
Remote Desktop sein. Zum anderen gab es etwas àhnliches schon mal:

[DataGridView rendering is very slow | Microsoft Connect]
https://connect.microsoft.com/Visua...-very-slow


Gibt es eine Beschrànkung wieviele Columns in
einem DataGridView angezeigt



Nein, aber pragmatisch schon welche. Bei grösser als
650 Spalten kann ggf. die FillWeight an den Rand des Erlaubten
kommen.

Folgendes ergibt bei mir (zum Beispiel VS 2008 SP1) oder
VS 2010 RC keine fehlerhaften Header:

private void Form1_Load(object sender, EventArgs e)
{
int anzSpalten = 300; int anzZeilen = 15;
DataTable dt = new DataTable();
for (int i = 0; i < anzSpalten; i++)
dt.Columns.Add(i.ToString());
for (int r = 0; r < anzZeilen; r++)
{
DataRow dr = dt.NewRow();
for (int c = 0; c < anzSpalten; c++)
dr[c] = c;
dt.Rows.Add(dr);
}
dgv.DataSource = dt;
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
}


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

Ähnliche fragen