DataGridView verzögerte Ereignisse

04/11/2008 - 13:39 von Maik | Report spam
Hallo,

ich habe in meiner Applikation ein DGV, welches eine DataTable
zugewiesen ist. Anzeige der Daten funktioniert ohne Probleme.

Probleme gibts aber bei ColumnHeader-Ereignissen:


ColumnHeaderMouseClick:
Wenn ich eine Spalte sortieren will (Klick auf Header), dann feuert
das Ereignis erst nach ca. 4-5 Sekunden oder sofort dann, wenn ich die
Maus bewege oder sofort, wenn ich einen Doppelklick mache.

ColumnDividerDoubleClick:
Wenn ich die Spaltenbreite mit Doppelklick auf den Divider veràndern
will, dann feuert das Ereignis erst dann, wenn ich einen
'Trippelklick' , also 3xschnell klicke.

ColumnWidthChanged:
Wenn ich die Spaltenbreite durch Verschieben des Dividers veràndern
will, dann verschiebt sich der Divider sofort, aber das Ereignis
feuert erst nach ca. 4-5 Sekunden oder wenn ich die Maus weiter bewege
(und auch dann wird erst die Spaltenbreite selbst angepasst).

Ich hoffe, jemand kennt das Problem.

Besten Dank

Maik
 

Lesen sie die antworten

#1 Frank Dzaebel
04/11/2008 - 14:54 | Warnen spam
Hallo Maik,

Probleme gibts aber bei ColumnHeader-Ereignissen:
ColumnHeaderMouseClick:
Wenn ich eine Spalte sortieren will (Klick auf Header), dann feuert
das Ereignis erst nach ca. 4-5 Sekunden oder sofort dann, wenn ich die
Maus bewege oder sofort, wenn ich einen Doppelklick mache.



Du hast vermutlich den AutoSizeColumnsMode auf eine
AllCells-Variante gestellt. Zusammen mit sehr vielen
Zeilen können dann by design solche Effekte enstehen.
Variiere diesen Modus.
In Einzelfàllen kann auch der virtuelle Mode
des DataGridViews helfen:

[Nutzung grosser Datenmengen beim DataGridView]
http://dzaebel.net/DgvVirtual.htm





ColumnDividerDoubleClick:
Wenn ich die Spaltenbreite mit Doppelklick auf den Divider veràndern
will, dann feuert das Ereignis erst dann, wenn ich einen
'Trippelklick' , also 3xschnell klicke.



nicht nachvollziehbar [XP, Vs2008 .NET 3.5 SP1]
Allerdings beeinflusst auch hier der AutoSizeColumnsMode.




ColumnWidthChanged:
Wenn ich die Spaltenbreite durch Verschieben des Dividers veràndern
will, dann verschiebt sich der Divider sofort, aber das Ereignis
feuert erst nach ca. 4-5 Sekunden oder wenn ich die Maus weiter bewege
(und auch dann wird erst die Spaltenbreite selbst angepasst).



s.o.


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

Ähnliche fragen