Trier des textbox

Messages postés
27
Date d'inscription
samedi 8 janvier 2011
Statut
Membre
Dernière intervention
12 juin 2011
- - Dernière réponse : tuyn00txa
Messages postés
27
Date d'inscription
samedi 8 janvier 2011
Statut
Membre
Dernière intervention
12 juin 2011
- 12 juin 2011 à 16:10
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.
Afficher la suite 

6 réponses

Messages postés
57
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
13 juin 2011
1
0
Merci
Salut,

Ces nombres doivent être écrits dans des textbox par l'utilisateur dans le programme

Pas sur d'avoir saisi comme il le faut, mais je pense que tu veux dire que l'utilisateur va écrire les nombre dans les textbox qui sont sur ton application.

Ensuite il faut faire des test dans une boucle
dans la boucle tu incrémentes tes textbox (1,2,3,4) et tu test si a chaque fois la valeur est plus grande que la précédentes, tu va trouver le max, et tu recommence pour les textbox qui restent ;)

_______________________
Imports System.Thinking
'La vie Roxxx un max à qui s'en donne la peine
Commenter la réponse de SebSemos
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
46
0
Merci
Salut
Une solution parmis les autres
déclarer un tableau de double ou integer tu n'as pas dit si c'est un nombre entier ou decimal
mettre dans le tableau les 6 valeurs des textboxes
et ensuite apliquer un sql qui trie le tableau
si tu as juste 6 textboxes tu peux avec une
boucle lire chaque donnée d'un textbox dans le
tableau
Private table(5) As Double 

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim iter As Integer
        iter = 0
        For Each C As Control In Me.Controls            If TypeOf (C) Is TextBox Then
                If Double.TryParse(DirectCast(C, TextBox).Text, table(iter)) Then
                    iter += 1
                End If

            End If
        Next
        Try
            table = OrderNumber()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Sub
Private Function OrderNumber() As Double()

        Return (From value In table Select value Order By value Ascending).ToArray

    End Function
Commenter la réponse de cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
46
0
Merci
plutot

 Private table(5) As Double
 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 Dim iter As Integer
 iter = 0
 For Each C As Control In Me.Controls
    If TypeOf (C) Is TextBox Then
        If Double.TryParse(DirectCast(C,   TextBox).Text, table(iter)) Then
           iter += 1
        End If
    End If
 Next
 Try
    table = OrderNumber()
 Catch ex As Exception
     MessageBox.Show(ex.Message)
 End Try

End Sub

Private Function OrderNumber() As Double()
  Return (From value In table Select value     Order By value Ascending).ToArray
End Function
Commenter la réponse de cs_ShayW
Messages postés
27
Date d'inscription
samedi 8 janvier 2011
Statut
Membre
Dernière intervention
12 juin 2011
0
Merci
Merci ShayW pour ton code, mais comment je peux ensuite changer la couleur du fond des textbox des 3 plus grands numéros?
Commenter la réponse de tuyn00txa
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
46
0
Merci
Salut

ah oui un petit peu plus compliqué
nouveau code

Private Structure textboxdata
        Public value As Double
        Public nametextbox As String
    End Structure
    
Private table(5) As textboxdata


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim iter As Integer
      iter = 0
      For Each C As Control In Me.Controls
      If TypeOf (C) Is TextBox Then
         If Double.TryParse(DirectCast(C, TextBox).Text, table(iter).value) Then
                    table(iter).nametextbox = DirectCast(C, TextBox).Name
            iter += 1
         End If
    End If
  Next
  Try
      table = OrderNumber()
  Catch ex As Exception
       MessageBox.Show(ex.Message)
  End Try
  For Each C As Control In Me.Controls
      If TypeOf (C) Is TextBox Then
          If (C.Name table(5).nametextbox) Or (C.Name table(4).nametextbox) Or (C.Name = table(3).nametextbox) Then
               C.BackColor = Color.Blue
           Else
               C.BackColor = Color.White
           End If
       End If
  Next


    End Sub

    Private Function OrderNumber() As textboxdata()

        Return (From fields In table Select fields Order By fields.value Ascending).ToArray

    End Function
End Class
Commenter la réponse de cs_ShayW
Messages postés
27
Date d'inscription
samedi 8 janvier 2011
Statut
Membre
Dernière intervention
12 juin 2011
0
Merci
Merci, ça marche .
Commenter la réponse de tuyn00txa