Bonjour à vous Oh! grand développeur

je sollicite votre aide pour m'aider, dans la mesure du possible, à enlever l'effet de scintillement lors d'écriture dans un listview par une opération multi-thread.

J'ajoute une nouvelle ligne à la fin de chaque thread par délégué et j'ai un effet de sautillement ...genre, lorsque on regarde un écran d'ordinateur dans un film à la télévision, et ce, même si la ligne qui est ajouté est beaucoup plus bas que le bas de l'écran.

je vous présente mon délégué dans l'espoir d'une solution,j'ai essayé refresh et c'est pire car je ne peut plus me déplacer sur la page.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub DelListVScan(ByVal msg As String)
        'Control.InvokeRequired = False <=>Appel normal du Form
        If Not ListVScan.InvokeRequired Then
            Dim MaStr() As String
            MaStr = msg.Split(";")
            Dim LVI As New ListViewItem
            LVI.UseItemStyleForSubItems = False
            LVI.Text = MaStr(0)
            LVI.SubItems.Add(MaStr(1))
            LVI.SubItems.Add(MaStr(2))
            LVI.SubItems.Add(MaStr(3))
            LVI.SubItems.Add(CDbl(MaStr(4)).ToString("F"))
            LVI.SubItems.Add(CDbl(MaStr(5)).ToString("F"))
            LVI.SubItems.Add(CDbl(MaStr(6)).ToString("F"))
            LVI.SubItems.Add(CDbl(MaStr(7)).ToString("F"))
            LVI.SubItems.Add(CDbl(MaStr(8)).ToString("F"))
            LVI.SubItems.Add(CDbl(MaStr(9)).ToString("F"))
            LVI.SubItems.Add(CDbl(MaStr(10)).ToString("F"))
            LVI.SubItems.Add(MaStr(11))
            If CDbl(MaStr(9)) < 0 Then
                LVI.SubItems(9).BackColor = Color.Red
                LVI.SubItems(10).BackColor = Color.Red
            End If
            If CDbl(MaStr(9)) > 0 Then
                LVI.SubItems(9).BackColor = Color.AliceBlue
                LVI.SubItems(10).BackColor = Color.AliceBlue
            End If
            ListVScan.Items.Add(LVI)
            'ListVScan.Refresh()
         Else
            'non Appel à delegue de Maniere Asynchrone (BeginInvoke) 
            DelRecLIstVScan = New UIOneArgSub(AddressOf DelListVScan)
            Me.BeginInvoke(DelRecLIstVScan, New Object() {msg})
        End If
merci à l'avance