Bonjour à tous,
j'ai refactorisé presque entièrement mon code en POO et j'ai trouvé enfin une architecture que me convient à peu prêt. Je vous embetterais moins souvent maintenant (ça faisait plusieurs années que je cherchais, comme quoi tout arrive avec de la perseverance )
Par contre j'ai ce problème que je cite dans le sujet et que je n'arrive vraiment pas à résoudre.
Mon UI utilise un Bindingsource comme source de données et mon dataGridview est bindé dessus de cette façon :
Comme j'imagine qu'il faut faire Datagridview.refresh quelque part donc j'ai tenté dans le Bindingsource.CurrentItemChanged (avec un Invoke) mais c'est pas instantané, ça répond 0.5 seconde après et mon Datagridview se redessine très mal en faisant comme ça. (Il y a comme une rémanence lors du redessin).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MonBindingsource.Datasource = MaDatatable DatagridviewMain.Datasource = MonBindingsource
Voici le code:
Merci beaucoup pour votre aide et votre avis une fois de plus.
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 AddHandler _bs.CurrentItemChanged, AddressOf InvoquerBsCurrentItemChanged Delegate Sub DelegateBsCurrentItemChanged(sender As Object, e As EventArgs) Private Sub InvoquerBsCurrentItemChanged(sender As Object, e As EventArgs) ' InvokeRequired compare l'ID du thread appelant à l'ID du thread qui a créé le controle. Si ces threads sont différent, renvoie true. If Me.InvokeRequired Then Dim MyDelegate As New DelegateBsCurrentItemChanged(AddressOf BsCurrentItemChanged) Me.Invoke(MyDelegate, sender, e) Else Call BsCurrentItemChanged(sender, e) End If End Sub Private Sub BsCurrentItemChanged(sender As Object, e As EventArgs) DataGridViewMain.Refresh() End Sub
Partager