jimy neutron
Messages postés491Date d'inscriptionmercredi 1 février 2006StatutMembreDernière intervention18 novembre 2016
-
2 janv. 2013 à 14:58
jimy neutron
Messages postés491Date d'inscriptionmercredi 1 février 2006StatutMembreDernière intervention18 novembre 2016
-
10 janv. 2013 à 22:40
Salut à tous,
Habituellement, je cherche beaucoup avant de poser une question, mais la je ne sais meme pas avec quel mots clés chercher!
Voila, suite à un click sur une photo de mon application, j'affiche un panel regroupant bon nombre de textbox, combo et autres controls qui me renseigne sur la photo sélectionnée.
Cela marche très bien, a ceci prêt que lors de l'affichage du panel, il faut un temps avant qu'il ne s'affiche correctement, comme si il s'affichait AVANT que la fonction précédente ne soit terminée.
En gros, ma commande fonctionne comme ceci.
Private Sub DetailShoot(ByVal sender As Object, ByVal e As EventArgs)
'CLICK
Dim cible As Panel = DirectCast(sender, Panel)
IndexSelctShoot = cible.Tag
Call Find_Shoot(IndexSelctShoot) 'Trouver la photo dans la BDD
Call Write_Panel() 'Remplir le panel
Me.Panel_Shoot.visible=true ' Afficher le panel
End Sub
Y a-t-il un moyen d'attendre que toutes exécutions soit terminer avant d'afficher le panel?
Je ne vois pas trop ce que tu pourrais faire.
Tente quand même de déléguer le travail à un thread pour voir si ça change quelque chose.
Public Class Form1
Delegate Sub DelegateTraitement()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim t As New Threading.Thread(AddressOf Job)
t.Start()
End Sub
Private Sub Job()
If Me.InvokeRequired Then
Me.Invoke(New DelegateTraitement(AddressOf Job))
Else
'traitement de ton panel
'...
Panel1.Visible = True
End If
End Sub
End Class
jimy neutron
Messages postés491Date d'inscriptionmercredi 1 février 2006StatutMembreDernière intervention18 novembre 20161 3 janv. 2013 à 11:01
Salut Banana,
Et bien, une image vaut mieux que cent mots...
Cet état ne reste qu'une petite seconde, mais ce n'est pas très esthétique.
Comme tu peux le voir dans le code, je ne rends visible le panel qu'après son remplissage, pensant palier à ce problème...En vain!
Jimy
Oui, vérifie quand même que cette sub ne soit pas appelée plusieurs fois car je constate que tu l'abonnes dynamiquement à un événement (clause Handles absente).
jimy neutron
Messages postés491Date d'inscriptionmercredi 1 février 2006StatutMembreDernière intervention18 novembre 20161 10 janv. 2013 à 22:40
Salut,
pas beaucoup de dispo ces temps ci, mais ces soir j'ai testé ta solution, et cela rend l'affichage plus fluide. J'avais une boulette bien planquée qui me ralentissait aussi l'affichage. Du coup c'est beaucoup mieux, merci.
Et merci pour le multi-thread en VB NET, je ne connaissais qu'en VB6, super! ;)