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 :

Deplacement d'un label pour qu'il fasse des allés et retoure sur une distance déterminée [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 135
    Par défaut Deplacement d'un label pour qu'il fasse des allés et retoure sur une distance déterminée
    Bonjour

    Je voudrais que me mon label fasse des allés et retours sur une distance déterminée

    Pour ce faire, j'ai testé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LabLecteurOuvert.Left = LabLecteurOuvert.Left - 1
                If LabLecteurOuvert.Left + LabLecteurOuvert.Width < 362 Then LabLecteurOuvert.Left = LabLecteurOuvert.Left + 1
                If LabLecteurOuvert.Left + LabLecteurOuvert.Width > 656 Then LabLecteurOuvert.Left = LabLecteurOuvert.Left - 1
    Que j'ai placé dans un timer.

    Le label se déplace bien de la droite vers la gauche mais quand il arrive à la position 362, il ne repart pas vers la droite.

    je pense qu'il me manque une instruction.

    Merci par avance pour vos réponses

    @+ Martipit

  2. #2
    Membre émérite

    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
    Par défaut
    Salut

    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
       Private flagdirection As Integer
       Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     flagdirection = 1
     
    end sub 
     
     
        Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Dim segment As Integer
    'tu peux modifier la valeur de segment
            segment = 10
            If flagdirection = 1 Then
                'direction à droite
                Label1.Left += segment
                ' verifie si touche la limite de droite
                If Label1.Right >= 656 Then
                    flagdirection = 0
                End If
            ElseIf flagdirection = 0 Then
                Label1.Left -= segment
                ' verifie si touche la limite de gauche
                If Label1.Left <= 352 Then
                    flagdirection = 1
                End If
            End If
     
        End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 135
    Par défaut
    salut
    Merci pour ce code

    Mais arrivé à la position 656, le label ne repart pas dans l'autre sens. il continue toujours vers la droite.

    Bizarre tout cela.

    @+ Martipit

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    bonjour,

    ta position 656 étant bien au dela de 362 tu ne reviendras jamais en arrière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                If bDroite Then If LabLecteurOuvert.Left + LabLecteurOuvert.Width < 656 Then LabLecteurOuvert.Left = LabLecteurOuvert.Left + 1
                If bDroite And LabLecteurOuvert.Left + LabLecteurOuvert.Width >= 656 Then bDroite = False
                If Not bDroite Then If LabLecteurOuvert.Left >= 100 Then LabLecteurOuvert.Left = LabLecteurOuvert.Left - 1
                If Not bDroite And LabLecteurOuvert.Left < 100 Then bDroite = True
    bDroite doit être défini a True au départ

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre émérite

    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
    Par défaut
    Mais arrivé à la position 656, le label ne repart pas dans l'autre sens. il continue toujours vers la droite.
    si bien sur cela dépend de la variable segment
    si tu veux exactement 656
    met à la place de segment = 10
    segment = 1

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 135
    Par défaut
    j'ai testé la réponse de rv26t. Arrivé au dout à droite, le label s'arrête et ne repars pas en arrière

    shayw, j'a imis le segment à 1 et arrivé au bout à droite, il ne repars pas dans l'autre sens, il fait des petis sauts sur place.

    @+ Martipit

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Citation Envoyé par Martipit Voir le message
    j'ai testé la réponse de rv26t. Arrivé au dout à droite, le label s'arrête et ne repars pas en arrière

    shayw, j'a imis le segment à 1 et arrivé au bout à droite, il ne repars pas dans l'autre sens, il fait des petis sauts sur place.

    @+ Martipit
    As-tu bien testé avec les valeurs que j'ai placé ? (tu pourras changer après)

    As-tu bien définie bDroite au début de ta form. (pas dans le timer sinon il est remis a vrai à chaque appel)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Class Form1
        Dim bDroite As Boolean = True
    Parcequ'avec ces conditions cela fonctionne chez moi.

    Quel est le texte dans ton label ?

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/04/2011, 22h25
  2. Réponses: 6
    Dernier message: 09/02/2011, 10h15
  3. Réponses: 2
    Dernier message: 17/02/2010, 21h32
  4. Réponses: 13
    Dernier message: 19/12/2008, 14h32
  5. Réponses: 9
    Dernier message: 21/04/2008, 15h13

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