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 :

Trier des textbox [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Par défaut Trier des textbox
    Bonjour,

    Je cherche à trier 6 nombres par ordre croissant. Ces nombres doivent être écrits dans des textbox par l'utilisateur dans le programme. Après le clic sur un bouton, le programme devra faire changer la couleur des 3 plus grands nombres. Je ne sais pas de quel manière procéder.

    J'ai essayé de créer un tableau de label mais je n'y arrive pas.


    Merci pour votre aide.

  2. #2
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    Tu mets tous les nombres dans une List(Of Integer) et tu trie la liste.

    Puis, tu prends les 3 premiers et tu colories les textbox correspondantes.

  3. #3
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 467
    Par défaut
    Salut,

    Alors déjà pour répondre rapidement à la question "Faire les changer la couleur des textbox", tu ne peux pas. Il faut que tu utilises dans ce là, des "RichTextBox", qui te permettre de mettre en forme du texte, et gérer ensuite le jeu de couleur via le code. Mais c'est pas simple au niveau synthaxe.

    Ensuite, pour trier tes nombres, n'utilises pas de "TextBox", mais "NumericUpDown", car cela permettra aux users de ne pas entrer autre chose qu'un nombre. Ou sinon tu controles sur l'évènement "OnTextChanged" du textbox.

    Pour finir : le tri. Tu as donc tes 6 valeurs, tu les tri avec un petit algo' qui va bien, ensuite tu les mets dans un tableau d'entier. Après, heu ... Mets les dans une listbox ? ça sera plus simple que de générer des labels.
    Car pour chaque label, il faudra que tu la crée, l'ajoute dans le controle parent (ton formulaire), que tu la positionnes correctement sur l'axe X & Y ... Bref, un joli bordel.

  4. #4
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    Bon, j'ai fait un formulaire avec 6 textbox (txtA, txtB...., txtF) et un bouton (btnTest) et j'ai mis ça dedans.

    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
        Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
            Dim lstKV As New List(Of KeyValuePair(Of Integer, TextBox))
            Dim tmpInt As Integer = 0
            If Not Integer.TryParse(txtA.Text, tmpInt) Then
                tmpInt = Integer.MaxValue
            End If
            lstKV.Add(New KeyValuePair(Of Integer, TextBox)(tmpInt, txtA))
            If Not Integer.TryParse(txtB.Text, tmpInt) Then
                tmpInt = Integer.MaxValue
            End If
            lstKV.Add(New KeyValuePair(Of Integer, TextBox)(tmpInt, txtB))
            If Not Integer.TryParse(txtC.Text, tmpInt) Then
                tmpInt = Integer.MaxValue
            End If
            lstKV.Add(New KeyValuePair(Of Integer, TextBox)(tmpInt, txtC))
            If Not Integer.TryParse(txtD.Text, tmpInt) Then
                tmpInt = Integer.MaxValue
            End If
            lstKV.Add(New KeyValuePair(Of Integer, TextBox)(tmpInt, txtD))
            If Not Integer.TryParse(txtE.Text, tmpInt) Then
                tmpInt = Integer.MaxValue
            End If
            lstKV.Add(New KeyValuePair(Of Integer, TextBox)(tmpInt, txtE))
            If Not Integer.TryParse(txtF.Text, tmpInt) Then
                tmpInt = Integer.MaxValue
            End If
            lstKV.Add(New KeyValuePair(Of Integer, TextBox)(tmpInt, txtF))
     
            lstKV.Sort(AddressOf KeyValuePairCompareByKey)
     
            For i As Integer = 0 To lstKV.Count - 1
                If i < 3 Then
                    lstKV(i).Value.BackColor = Color.Aqua
                Else
                    lstKV(i).Value.BackColor = Color.White
                End If
            Next
        End Sub
     
        Private Function KeyValuePairCompareByKey(ByVal x As KeyValuePair(Of Integer, TextBox), ByVal y As KeyValuePair(Of Integer, TextBox)) As Integer
            Return x.Key.CompareTo(y.Key)
        End Function
    En espérant que ça t'aide

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Par défaut tri de textbox
    merci pour vos réponses, le souci c'est qu'avec la listbox je ne peux pas voir les nombres qui se correspondent. Je m'explique :

    En faite je vais avoir 6 texbox (1 pour les carottes, 1 pour les poires, 1 pour les pommes...), l'utilisateur rentre 6 numéros et dès que je clique sur le bouton, le programme calcule par exemple le prix total des pommes (grâce au nombre de pommes que j'ai entré) et au prix de la pomme et cela pour les 6 textbox.

    Je retrouve ensuite lequels m'ont couté les plus chers parmi les 6.


    (les pommes... étaient bien sûr un exemple )

  6. #6
    Nouveau candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    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
    Public sub Compter()
    ' 1.5 est le prix à l'unité
    Dim Legume() as string
    Legume(0) = Txtpomme.text * 1.5       
    Legume(1) = TxtPatate.text * 1.5            
    Legume(2) = TxtTomate.text * 1.5          
    Legume(3) = TxtOeuf.text * 1.5             
    Legume(4) = TxtCarotte.text * 1.5                 
    Legume(5) = TxtNavet.text * 1.5        
     
    For i = 0 To Legume.max
    msgbox("le plus cher est " & Legume(i))
    Next
     
    End sub

  7. #7
    Nouveau candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Par défaut
    Ou alors :

    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
    Public sub Compter
    ' 1.5 est le prix à l'unité
    Dim Legume() as string
    Dim result as string
     
    Legume(0) = Txtpomme.text * 1.5       
    Legume(1) = TxtPatate.text * 1.5            
    Legume(2) = TxtTomate.text * 1.5          
    Legume(3) = TxtOeuf.text * 1.5             
    Legume(4) = TxtCarotte.text * 1.5                 
    Legume(5) = TxtNavet.text * 1.5      
     
    If Legume(0) > Legume(1) Then result(0) = True
    If Legume(0) > Legume(2) Then result(1) = True
    If Legume(0) > Legume(3) Then result(2) = True
    If Legume(0) > Legume(4) Then result(3) = True
    If Legume(0) > Legume(5) Then result(4) = True
     
    If result(0) = true & result(1) = true & result(2) = true & result(3) = true & result(4) = True then Plusgrand(Legume(0))
     
    End sub
     
    Public sub PlusGrand (byval Grand as string)
    msgbox("Le plus grand est " & Legume(0))
    End sub

    Je finirais le code ce tantos car je vais mangé ^^"

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

Discussions similaires

  1. [PPT-2010] Trier des slides en fonction du textbox
    Par arnaudsg1 dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 09/11/2011, 10h49
  2. trier des fichiers avec un tableau flexgrid
    Par digger dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 08/12/2005, 15h20
  3. Réponses: 9
    Dernier message: 17/10/2005, 10h44
  4. [TList]: trier des doubles
    Par PpPool dans le forum Langage
    Réponses: 6
    Dernier message: 11/08/2005, 11h34
  5. [VB.NET] XML - Trier des noeuds
    Par nako dans le forum VB.NET
    Réponses: 2
    Dernier message: 10/06/2004, 09h13

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