IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Affichage label pendant 3 secondes


Sujet :

VB.NET

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Affichage label pendant 3 secondes
    Bonjour,

    j'aimerais faire en sorte qu'un de mes labels soit affiché pendant 3 secondes et disparaissent après...
    Je ne vois pas comment faire :s

    Voila pour l'instant ou j'en suis :

    Au chargement de la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    lblMessage.Visibility = Windows.Visibility.Visible
    Temps()
    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
     
    Dim atimer As Timer
    Dim deb As Integer
    Private Sub Temps()
    atimer = New System.Timers.Timer(6000)
    deb = CInt(Date.Now.ToString("ss"))
    AddHandler aTimer.Elapsed, AddressOf OnTimedEvent
    atimer.Interval = 3000
    aTimer.Enabled = True
    End Sub
     
    Private Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs)
    atimer.Stop()
    lblMessage.Visibility = Windows.Visibility.Hidden
    End Sub
    Et voici l'erreur :
    Le thread appelant ne peut pas accéder à cet objet parce qu'un autre thread en est propriétaire
    Merci.

  2. #2
    Membre du Club Avatar de Howard_Hughes
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juillet 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 18
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    je n'ai pas de plateforme Vb.net pour tester, mais essaie avec lblMessage.Visibility = False au lieu de Hidden

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    ca ne marche pas non plus
    merci quand meme

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Bonjour,

    regardez du côté des "DELEGATE".
    Le thread principal a créé le controle, il est donc le seul à pouvoir accéder à ses propriétés graphiques.
    Afin de modifier une de ces propriétés, vous pouvez appeller à partir de votre thread une sub delegate dans laquelle vous mettez votre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lblMessage.Visibility = Windows.Visibility.Hidden

  5. #5
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Salut

    peut etre simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Private WithEvents timer1 As New Timer
    dans le event load

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    timer1.Interval = 3000
            timer1.Start()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
         Private Sub timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles timer1.Tick
            DirectCast(sender, Timer).Stop()
           mylabel.Visible = False
        End Sub

  6. #6
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    Le code données ne fonctionne pas
    par contre je vais aller me renseigner du coté des delegate...

    merci

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Afin de vous éclairer un peu voilà comment ça doit se présenter :

    Au niveau des déclarations on déclare une sub delegate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private delegate sub delegate_cache_lblmessage
    Ensuite une sub sur laquelle va pointer votre delegate sub :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private sub cache_lblmessage
         lblMessage.Visibility = Windows.Visibility.Hidden
    End sub
    et enfin une ligne qui lance votre sub en déléguée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs)
         atimer.Stop()
         'lblMessage.Visibility = Windows.Visibility.Hidden
         Invoke(New delegate_cache_lblmessage(AddressOf cache_lblmessage))
    End Sub
    Je ne suis pas sur à 100% de la syntaxe, mais il me semble que c'est ça.

  8. #8
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    merci de m'aider.

    Alors apparement ce serait quelque chose comme cela, mais devant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Invoke(New delegate_cache_lblmessage(AddressOf cache_lblmessage))
    il faudrait qu'il y ait un objet delegate. Mais je ne comprend pas exactement comment le céer...

  9. #9
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    Trouvé

    Je ne comprend toujours pas vraiment mais il faut mettre devant : Me.Dispatcher.Invoke

    soit le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs)
         atimer.Stop()
         'lblMessage.Visibility = Windows.Visibility.Hidden
        Me.Dispatcher.Invoke(New delegate_cache_lblmessage(AddressOf cache_lblmessage))
    End Sub
    Merci beaucoup à toi

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Je sais pas ce qu'est exactement le me.dispatcher, mais si ça marche ...

    Il me semble que pour ma part j'avais importé des références pour le BackgroundWorker, et autres.

    Invoke devait être dans ces références.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher un label pendant 2 secondes
    Par noftal dans le forum VB.NET
    Réponses: 2
    Dernier message: 10/10/2013, 18h09
  2. [Modalpanel] Affichage pendant quelques secondes
    Par AmineDev9 dans le forum JSF
    Réponses: 11
    Dernier message: 02/06/2009, 12h22
  3. [MySQL] Affichage pendant 5 secondes
    Par Devilju69 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 31/05/2009, 14h29
  4. Affichage de bmp pendant quelque seconde
    Par fab101 dans le forum SDL
    Réponses: 3
    Dernier message: 04/05/2006, 23h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo