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 :

Mode pas à pas (VS2013) étrange.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut Mode pas à pas (VS2013) étrange.
    Bonjour à tous.

    Je me suis amusé à regarder mon code ce dérouler en pas à pas pour vérifier que tout ce passe pour le mieux et je me suis rendu compte d'une chose assez curieuse : ma procédure ne ce termine pas que mon pas suivant me reviens au début de la procédure et recommence les instructions...

    mon code est le suivant :

    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
    Private Sub Calcul_Prix_De_Vente(sender As Object, e As EventArgs)
     
            Image_TB = sender
     
            If Image_TB.Text.Count = 0 Then
     
                TextBox(Image_TB.Tag * 6 + 4).Text = ""
     
            Else
     
                If Image_TB.Text.Contains(".") Then
                    Image_TB.Text = Replace(Image_TB.Text, ".", ",")
                    Image_TB.Select(Image_TB.Text.Count, 0)
                ElseIf Not IsNumeric(Image_TB.Text) Then
                    Image_TB.Select(Image_TB.Text.Count - 1, 1)
                    Image_TB.SelectedText = ""
                    Exit Sub
                End If
    etc...
    En fait, quand je me situe à la ligne : "Image_TB.Text = Replace(Image_TB.Text, ".", ",")", l'instruction suivante ce retrouve à l'entrée de ma procédure : "Private Sub Calcul_Prix_De_Vente(sender As Object, e As EventArgs)" et non pas à l'instruction "Image_TB.Select(Image_TB.Text.Count, 0)". Du coup lors du second passage, ma condition "If Image_TB.Text.Contains(".") Then" est fausse, et continue la suite de la procédure, et à la fin de la procédure, il reviens au début et me passe à l'instruction suivant celle qui m'à fait revenir au début : " Image_TB.Select(Image_TB.Text.Count, 0)" et continue dans la procédure pour finir (sans revenir au début cette fois ci).

    Je ne sais pas si vous voyez ce que je veux dire !

    Du coup je me dis que mon code est mauvais pas propre et me fait perdre du temps de calcul donc optimisation 0...

    Enfin voila je me demande pourquoi il me fait ce cinéma !
    Merci.

  2. #2
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Il y a fort à parier (vu que ce n'est pas précisé) que ta méthode Calcul_Prix_De_Vente sert de gestionnaire d'évènement pour Image_TB.TextChanged (ou autre évènement similaire)
    Du coup lorsque tu modifies Image_TB.Text (en lui assignant le résultat du Replace) ça déclenche à nouveau l'évènement (même si le premier continu sa route normalement, c'est juste qu'en pas à pas l'attention est porté sur l'un plutôt que l'autre)

    Étant donné que la procédure en question vise à (vraisemblablement) convertir la représentation d'un nombre; tu devrais au choix spécifier la culture d'affichage sur français pour avoir un affichage numérique en français ; utiliser un autre contrôle pour de la saisie numérique (par ex: NumericUpDown) ou utiliser une autre approche pour gérer ta saisie (par ex: Utiliser l'évènement Validating en conjonction [ou pas] avec un Errorprovider pour signifier les erreurs de saisies)

    Mais bon là c'est de l'hypothétique vu qu'on a pas vraiment le contexte global

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    ah oui en effet c'est bien un événement géré lors des appuis touches ! en fait c'est une textbox sur laquelle on entre le prix des fournitures (en euros) et qui calcule le prix de revente (en € lui aussi). Donc l'afficher en NumericUpDown c'est pas trop pratique ni aussi lisible qu'une textbox (possibilité de rajouter le symbole € en fin de textbox entre autre).

  4. #4
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Je le connais mal mais il me semble que le MaskedTextBox permet ce genre de chose (à voir) après ça changera pas le fait que relancer le même évènement depuis là où on le gère sera problématique mais maintenant que l'origine est cernée ça devrait aller (sinon suffira de poster l'avancement des problèmes )

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Par défaut
    Exact je vais me renseigner avec le MaskesTextBox !

    Merci bien !

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Hello,

    Personnellement, je rejoinds Sehnsucht quant à l'utilisation du contrôle NumericUpDown. Il permet l'utilisation de décimal donc pas de souci au niveau du prix. Et pour la devise, tu peux toujours ajouter un label avec "€" comme texte après le NumericUpDown ou un ComboBox avec la liste des devises autorisées si cela peut varier.

    Tu auras beaucoup moins de problèmes en utilisant des contrôles prévu pour le type de de données dont tu as besoin. Un TextBox ou MaskedTextBox sont faits, comme leur nom l'indique, pour gérer du texte tandis qu'un NumericUpDown est fait pour gérer des nombres (si si, j'vous jure!).

    Il y aura alors beaucoup de contrôles de saisies à faire ce qui fera donc moins de code et donc un code plus lisible et plus facilement maintenable.

Discussions similaires

  1. [AC-2007] la mode debogage pas à pas ne fonctionnement pas
    Par s.rais dans le forum Access
    Réponses: 2
    Dernier message: 03/06/2014, 14h38
  2. comment éxécuter un job en mode debogage pas à pas
    Par sinoun dans le forum Exécution et industrialisation
    Réponses: 2
    Dernier message: 13/03/2012, 13h48
  3. Réponses: 8
    Dernier message: 04/04/2009, 11h37
  4. Mode pas à pas qui ne fonctionne pas.
    Par vciofolo dans le forum Access
    Réponses: 2
    Dernier message: 09/11/2005, 08h37
  5. Debuger une procédure stockée en mode pas à pas
    Par Oluha dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/12/2004, 10h59

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