Avatar billede AOlsen Juniormester
26. februar 2020 - 12:22 Der er 1 kommentar

Datagridview - Scroll Hastighed

Hej Eksperter,

Kæmper med vertical scroll speed på en Datagridview. Altså scroll med musehjul. Selv med 150 rækker og 15 kolonner hænger den.

Jeg har slået double buffering til - Internettets anbefalede løsning på scroll lag. Desværre ingen held.

DataGridView er databound, Jeg farver rækkerne i DataBindingComplete og CellValueChanged events, jeg bruger plugin til at kunne højreklikke på kolonneheader og skjule rækker. Osv.

Der sker meget, og har netop prøvet at slå både farvelade og skjul rækker funktion fra. Men desværre er det stadig langsomt.

Jeg ved ikke helt hvordan jeg (nemmest) finder ud af hvorfor min dv er langsom? Er det nogle events man kan tappe ind på. Eller hvor starter man?

Har lige prøvet JetBrains DotTrace profiler, men umiddelbart rapporterer den blot "Native Stack Traces With Out Resolved Functions", når jeg profiler.

Er der nogen derude, der kan dele erfaringer med hvordan man griber et lag problem an?
Avatar billede AOlsen Juniormester
26. februar 2020 - 12:56 #1
Update: Fandt en video på Jetbrains website om at debugge UI lags.

Det ser ud til, at under et scroll med lag bliver tiden brugt 25 % på ScrollRows og 70 % på DefWndProc.

System.Windows.Forms.DataGridView.ScrollRows(Int32, Int32, ScrollEventType)
System.Windows.Forms.NativeWindow.DefWndProc(ref Message)

Tja, aner ikke hvad DefWndProc er. Eller hvordan man bruger mindre tid på at kalde metoden :-)

Fandt det her på Internettet.

Gad vide om scroll problemer kan komme fra scroll acceleration indstillinger på min specifikke mus
https://stackoverflow.com/questions/46174421/slow-scroll-on-winforms-datagridview
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester