Rafraichissement "propore" d'un panel [Résolu]

Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
- - Dernière réponse : jimy neutron
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 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?

Merci de votre attention,

Jimy

Pensez: Réponse acceptée
'**********************************************
Afficher la suite 

6 réponses

Meilleure réponse
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
0
Merci
Bonjour,

il faut un temps avant qu'il ne s'affiche correctement

Merci de préciser un peu mieux ce phénomène.
Commenter la réponse de Utilisateur anonyme
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
0
Merci
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

Pensez: Réponse acceptée
'**********************************************
Commenter la réponse de jimy neutron
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
0
Merci
Merci pour l'exemple, je vais tenter ca et reviens te dire! ;)

Jimy

Pensez: Réponse acceptée
'**********************************************
Commenter la réponse de jimy neutron
0
Merci
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).
Commenter la réponse de Utilisateur anonyme
Messages postés
491
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
18 novembre 2016
1
0
Merci
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! ;)

Jimy

Pensez: Réponse acceptée
'**********************************************
Commenter la réponse de jimy neutron