vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
DataGridView Rendering sehr langsam 
Autor: Thorsten19479
Datum: 12.10.11 14:07

Hallo Zusammen,

hab hier ein DataGridView auf einer WindowsForm.
Dieses binde ich zur Laufzeit an eine DataTable, welche zuvor gefüllt wurde.
Nun kann man schon beobachten, wie das DataGridView gefüllt wird.
So Zeile für Zeile.
Außerdem formatiere ich die einzelnen Zeilen noch.
Das Ganze ist wirklich sehr zäh, insbesondere wenn ältere Rechner die Anwendung ausführen.
Im Hauptspeicher werden gerade mal 12 MB belegt.
Sollte also nichts grossartiges sein...

Hat jemand eine Idee, wie ich die Geschichte etwas beschleunigen kann?

Grüße
Thorsten
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: Manfred X
Datum: 12.10.11 17:17

Hallo!

Es wäre viel interessanter, zu analysieren, wie Du es
geschafft hast die Datenbindung derart auszutricksen.

Code tut not.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: Snoopy
Datum: 12.10.11 17:39

Das wird nicht an der Datenbindung liegen, sondern an der Cell-Formatierung. Zumindest habe ich selber
so was schon mal erlebt.

Gru?
---------------------------------------------------
Snoopy sagt - vb@rchiv find ich gut...
Schon gesehen? OSMMapViewer V2 Control

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: ModeratorDaveS (Moderator)
Datum: 12.10.11 18:40

Mal war es auch jemand mit 500 Spalten oder so...

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: ModeratorFZelle (Moderator)
Datum: 12.10.11 20:28

Oder die Automatische Cellenhöhe/Breite.
Wenn die im DataGridView an ist, wird es ekelig.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: Thorsten19479
Datum: 13.10.11 07:19

Hi,

nette Diskussion hier!

Ich werde mal probieren, die Formatierung testweise auszuschalten um zu sehen, ob es dann besser wird...
Aber ich brauch die eben!!
Aber wirklich viele Zeilen sind es nicht... vielleicht max. 100 oder so...

Grüße
Thorsten
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: Manfred X
Datum: 13.10.11 07:23

Hallo!

... und Deinen diesbezüglichen Code dürfen wir nicht kennenlernen ?

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: Thorsten19479
Datum: 13.10.11 07:33

Oh, sorry!

Ich fand dass das eigentlich gar nix grossartiges war...

Im Form_Load erzeug ich ne frische DataTable und fülle die Zeile für Zeile und am Schluss binde ich diese ans DataGridView... feddich...

Grüße
Thorsten
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: Maas
Datum: 13.10.11 07:44

Dir ist aber schon das "Vier-Augen-Prinzip" bekannt?

Maas
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: Thorsten19479
Datum: 13.10.11 07:47

?? Nein...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: Maas
Datum: 13.10.11 07:50

http://de.wikipedia.org/wiki/Vier-Augen-Prinzip

Maas
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: ModeratorDaveS (Moderator)
Datum: 13.10.11 10:33

Wir sollen sagen warum in deinem bestimmten Fall ein Problem besteht, allerdings sagst du uns gar nicht was genau du machst. Nichts besonders? Dann kann doch auch nichts besonders passieren, oder?

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: Thorsten19479
Datum: 13.10.11 10:56

Hi alle Zusammen,

Die Antwort von Snoopy hat mir schon geholfen.
Etwas weniger Formatierung und schon wirds performanter...

@DaveS
In dem Fall passiert auch nichts besonderes...

Aber bevor ich hier noch gesteinigt werde, hier noch der Code:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
  System.EventArgs) Handles MyBase.Load
 
            For n As Integer = 0 To dsMain.Tables("dt").Rows.Count - 1
                dRow = dsMain.Tables("dtModif").NewRow
                With dsMain.Tables("dt").Rows(n)
                    dRow.Item("Feld1") = .Item("Position")
                    dRow.Item("Feld2") = .Item("BelPosId")
                    dRow.Item("Feld3") = .Item("FaNr")
                    dRow.Item("Feld4") = .Item("Verursacherbeleg")
                    dRow.Item("Feld5") = msGetHauptverursacherKunde(.Item( _
                      "FaNr"))
                    dRow.Item("Feld6") = .Item("Artikelnummer")
                    dRow.Item("Feld7") = .Item("Bezeichnung")
                    dRow.Item("Feld8") = .Item("Matchcode")
                    dRow.Item("Feld9") = .Item("Zeichnungsnummer")
                    dRow.Item("Feld10") = .Item("Menge")
                    dRow.Item("Feld11") = Format(.Item("Termin"), "Short Date")
                    dRow.Item("Feld12") = Format(.Item("Belegdatum"), "Short" & _
                      "Date")
                End With
                dsMain.Tables("dtModif").Rows.Add(dRow)
            Next
 
            dgvAuftraege.DataSource= dsMain.Tables("dtModif")
 
End Sub
Herzlichste Grüße

Grüße
Thorsten
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DataGridView Rendering sehr langsam 
Autor: bauer
Datum: 14.10.11 14:57

Eventuell mal nochj folgender Kommentar zu dem Thema:

Siehe http://stackoverflow.com/questions/118528/horrible-redraw-performance-of-the-datagridview-on-one-of-my-two-screens

Es geht zwar hier um die Griddarstellung auf Systemen mit zwei Monitoren, aber evtl. hilt der Hinweis.

MyGrid.DoubleBuffered = True
Da das DoubleBuffered Property Protected ist, muss man das Grid einmal ableiten um sinnvoll ranzukommen an die Ecke, siehe obiger Link.

Ansonsten schliesse ich mich den Vorrednern an, die HauptperformanceSenke sind aufwändige Formatierungen und/oder die automatische Neuberechnung von optimalen Spalten / Zeilenhöhen.


Viel Erfolg weiterhin,
bauer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel