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 :

j'ai deux problèmes ! TextBox et décimales ; enchainement affichage images trop rapide


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Drilling enginer
    Inscrit en
    Décembre 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Drilling enginer
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 123
    Par défaut j'ai deux problèmes ! TextBox et décimales ; enchainement affichage images trop rapide
    Bonsoir,

    Je suis avec Visual Studio 2015, et j'utilise VBA, et .... j'ai dans un programme deux problèmes, en réalité j'en ai bcp plus, mais deux à la fois.

    le premier: j'aimerai que dans mes textbox, les utilisateurs puissent entrer les décimales indifféremment avec un point ou une virgule ....

    deuxième: j'ai fais une petite animation, pour résumer une tuyau se vide dans un bidon, le niveau de liquide de l'un passe dans l'autre, j'ai fais ça dans les limites de mes connaissances, c'est à dire j'ai fais avec visio 14 dessins identiques mais ou a chaque fois le liquide varie, et j'ai crée 14 picturesbox, que je fais apparaitre a tour de rôle grâce à un if then, visible false/true, genre dessin animé si vous voyez ce que je veux dire, j'ai collé le code qui est tout bête. et ça fonctionne mais

    le problème à mon sens c'est que le mouvement est trop rapide, j'aimerai le ralentir et surtout, j'ai is une trackbar, j'aimerai l'associer à cette trackbar !, faire bouger mon liquide dans un sens comme dans l'autre !

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Public Class Form1
        Dim a As Double
        Dim b As Integer
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
     
            PictureBox1.Visible = True
     
            If PictureBox1.Visible = True Then
                PictureBox1.Visible = False
                PictureBox2.Visible = True
     
                If PictureBox2.Visible = True Then
                    PictureBox2.Visible = False
                    PictureBox3.Visible = True
     
                    If PictureBox3.Visible = True Then
                        PictureBox3.Visible = False
                        PictureBox4.Visible = True
     
                        If PictureBox4.Visible = True Then
                            PictureBox4.Visible = False
                            PictureBox5.Visible = True
     
                            If PictureBox5.Visible = True Then
                                PictureBox6.Visible = False
                                PictureBox6.Visible = True
     
                                If PictureBox7.Visible = True Then
                                    PictureBox7.Visible = False
                                    PictureBox8.Visible = True
     
                                    If PictureBox8.Visible = True Then
                                        PictureBox9.Visible = False
                                        PictureBox9.Visible = True
     
                                        If PictureBox10.Visible = True Then
                                            PictureBox10.Visible = False
                                            PictureBox11.Visible = True
     
                                            If PictureBox11.Visible = True Then
                                                PictureBox12.Visible = False
                                                PictureBox13.Visible = True
     
                                                If PictureBox13.Visible = True Then
                                                    PictureBox13.Visible = False
                                                    PictureBox14.Visible = True
     
                                                End If
                                            End If
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
     
        End Sub
     
        Private Sub TrackBar1_ValueChanged(sender As Object, e As EventArgs) Handles TrackBar1.ValueChanged
            b = TrackBar1.Value
            Label2.Text = "lenght of inches" &
            Format(b / 5, "#.00#")
        End Sub
    End Class

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    je pense que tu fais du VB.NET et non du VBA, ça c'est juste pour la précision.

    Pour ton problème de séparateur décimal il suffit de faire un Replace(",", ".") avant de parser ta string vers un double. Si la valeur contient une virgule elle sera remplacée par un point, si ta valeur contient un point le replace ne fera rien.

    Pour ton animation je trouve ton code bien étrange. Perso (et c'est peut-être pas la meilleure solution) j'aurai fait une ImageList qui contient mes 14 images et lors du click sur le Button j'aurais lancé un Timer qui aurait rafraichi l'attribut Image de ma PictureBox jusqu'à les avoir toutes déroulées.

    Je te donnerai bien des exemples mais je peux te faire que du C#.

    PS : utilise la balise "code" (bouton #) pour rendre ton code plus lisible sur le forum.

  3. #3
    Membre confirmé
    Homme Profil pro
    Drilling enginer
    Inscrit en
    Décembre 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Drilling enginer
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 123
    Par défaut
    Merci je vais essayer les "imagelist"

    est ce que tu crois que je peux l'associer a la trackbar ?

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    ImageList est juste un conteneur d'image (en gros), donc je vois pas bien ce que tu pourrais faire comme association avec une TrackBar.
    Je te passe quand même un code C# au cas où ça pourrait t'aider un brin :
    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
    // btnAnime : Button qui lance l'animation
    // tmAnime : le Timer qui change l'image à chaque tick
    // picbxAnime : la PictureBox dans laquelle je mets mes images
    // imglstAnime : l'ImageList qui contient les images de mon animation, dans l'ordre
     
    // événement click sur le bouton : on start le timer
    private void btnAnime_Click(object sender, EventArgs e) {
    	tmAnime.Start();
    }
     
    // index de l'image actuellement affichée dans la picturebox
    private int _imgIdx = 0;
     
    // événement tick (appelé tous les Timer.Interval millisecondes, si starté)
    private void tmAnime_Tick(object sender, EventArgs e) {
    	// je mets l'image suivante de mon imagelist dans ma picturebox
    	picbxAnime.Image = imglstAnime.Images[_imgIdx++];
    	// si on a parcouru toutes les images de l'imagelist on reset l'index et on arrête le timer
    	if (_imgIdx >= imglstAnime.Images.Count) {
    		_imgIdx = 0;
    		tmAnime.Stop();
    	}
    }

  5. #5
    Membre confirmé
    Homme Profil pro
    Drilling enginer
    Inscrit en
    Décembre 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Drilling enginer
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 123
    Par défaut
    en gros j'aimerai que ma trackbar fasse "bouger" mon dessin dans un sens ou dans l'autre, pour etre plus précis, mes dessins représentent une bouteille qui se vide dans un fut, ma trackbar ferait vider la bouteille dans un sens et la remplir dans l'autre....

    pour info, c'est pas de l'alcool !!!!

  6. #6
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Alors oui, c'est tout à fait possible. En C# toujours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // trkAnime : la TrackBar
     
    // dans le constructeur de la form
    public FrmMain() {
    	InitializeComponent();
    	// après l'initialisation des composants on met le max de la TrackBar en corrélation avec le nombre d'images de l'ImageList
    	trkAnime.Maximum = imglstAnime.Images.Count - 1;
    }
     
    // événement scroll de la TrackBar
    private void trkAnime_Scroll(object sender, EventArgs e) {
    	// on met l'image de l'ImageList qui correspond à la valeur de la TrackBar dans notre PictureBox
    	picbxAnime.Image = imglstAnime.Images[trkAnime.Value];
    }

Discussions similaires

  1. [Débutant] Probléme textbox publique entre deux classes
    Par TheRafal dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 21/01/2014, 22h49
  2. [Débutant]Deux problèmes liés aux BD
    Par omegabahamut dans le forum Access
    Réponses: 5
    Dernier message: 03/12/2006, 12h28
  3. Problème TextBox et valeur
    Par Yanmeunier dans le forum IHM
    Réponses: 2
    Dernier message: 30/06/2006, 19h13
  4. [C++.NET] problème textBox
    Par stgi02 dans le forum VC++ .NET
    Réponses: 5
    Dernier message: 25/04/2006, 11h38
  5. [VB.NET]Problème de séparateur décimal [débutant]
    Par Cantalou dans le forum Windows Forms
    Réponses: 5
    Dernier message: 03/03/2006, 13h37

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