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 :

[VB.Net] Impossible de sortir d'une boucle


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2013
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 43
    Points : 11
    Points
    11
    Par défaut [VB.Net] Impossible de sortir d'une boucle
    Bonjour,

    Je rencontre un nouveaux problème que je n'arrive pas à résoudre depuis cette après-midi, je n'arrive pas à sortir de la boucle "Do" si le clic-gauche est effectué.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub btn_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
            If e.Button = MouseButtons.Right And Form1.btn = 1 Then
                Do
                    LocalMousePosition = Me.PointToClient(Cursor.Position)
                    btn.Location = New Drawing.Point(LocalMousePosition.X, LocalMousePosition.Y)
                    If e.Button = MouseButtons.Left Then
                        Exit Do
                    End If
                Loop
            End If
        End Sub
    Voilà en espérant avoir été le plus compréhensible possible

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    on ne fait pas une boucle sur le thread principal
    tu rentres dedans sur le clic droit, et tu veux sortir sur le clic gauche
    or le clic gauche doit lever un évènement, mais cet évènement attend que tu sois sorti de cette sub pour se déclencher, donc jamais ...

    il faut faire ca autrement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2013
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 43
    Points : 11
    Points
    11
    Par défaut
    Merci en tout cas de ta réponse, mais sur quel thread faut-elle la mettre alors ?

  4. #4
    Membre actif
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2016
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 154
    Points : 268
    Points
    268
    Par défaut
    Bonjour,
    je ne vois pas pourquoi tu utilises la boucle Do...Loop
    Tu pourrais tout simplement utiliser l'instruction If..............Else
    et ton probleme sera resolu
    c'est-à-dire if (cas de right click)
    else (pour l'autre cas)

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2013
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 43
    Points : 11
    Points
    11
    Par défaut
    La boucle sert à actualiser la position du bouton sur la souris

  6. #6
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Le plus simple serait, selon moi, de bouger ton bouton en même temps que ta souris. Et pour ça, tu peux utiliser l'événement MouseMove. Dans ton cas, il faudrait lier l'événement au click droit et le délier au click gauche.

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2013
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 43
    Points : 11
    Points
    11
    Par défaut
    Je ne vois pas ce que tu veut dire ZenZiTone.

  8. #8
    Membre actif
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2016
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 154
    Points : 268
    Points
    268
    Par défaut
    Citation Envoyé par Fundu31 Voir le message
    Je ne vois pas ce que tu veut dire ZenZiTone.
    Si je comprends bien il te demande d'utiliser l'evènement 'MouseMove' du formulaire plutot que celui de ton bouton. ce qui me parait somme toute assez logique
    tu pourras donc par la suite utiliser l'instruction if ..... else
    if pour le cas de click droit et else pour le cas de click gauche

  9. #9
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 64
    Points : 91
    Points
    91
    Par défaut
    Ta condition pour sortir de la boucle est "si c'st le bouton gauche"
    Ton code ne peut arriver à cet endroit que si la condition au-dessus est vraie, à savoir "si c'est le bouton droit"
    Y a comme un problème
    Fais comme dit plus haut par les autres, MouseMove par ex.

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2013
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 43
    Points : 11
    Points
    11
    Par défaut
    J'ai réussie le truc avec seulement un timer merci à tous !

  11. #11
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par Fundu31 Voir le message
    Je ne vois pas ce que tu veut dire ZenZiTone.
    Quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub btn_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
            If e.Button = MouseButtons.Right And Form1.btn = 1 Then
               Addhandler Me.MouseMove, AddressOf MoveButton
            else if e.Button = MouseButtons.Left And Form1.btn = 1 Then
               Removehandler Me.MouseMove, AddressOf MoveButton
            End If
    End Sub
     
    Private Sub MoveButton()
            LocalMousePosition = Me.PointToClient(Cursor.Position)
            btn.Location = New Drawing.Point(LocalMousePosition.X, LocalMousePosition.Y)
    End Sub
    Au click droit tu lies ton événement MouseMove à une méthode qui s'occupera de bouger le bouton. Au click gauche tu délies l'événement.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/12/2012, 19h52
  2. Sortir d'une boucle de parcour d'un Recordset
    Par Mariboo dans le forum IHM
    Réponses: 2
    Dernier message: 12/06/2006, 18h07
  3. Sortir d'une boucle en fonction d'une durée
    Par BECHE dans le forum Langage
    Réponses: 8
    Dernier message: 30/11/2005, 11h08
  4. [DEBUTANT] sortir d'une boucle avec un touche particulière
    Par thibouille dans le forum Débuter
    Réponses: 4
    Dernier message: 25/10/2005, 06h44
  5. SORTIR D'UNE BOUCLE
    Par chekibperl dans le forum Langage
    Réponses: 2
    Dernier message: 22/10/2005, 12h48

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