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.
merci à l'avance
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
Partager