Trouver le chiffre max de 100 textbox

Résolu
essenge11 Messages postés 14 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 11 février 2011 - 3 août 2009 à 05:50
essenge11 Messages postés 14 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 11 février 2011 - 4 août 2009 à 02:54
Bonjour,

Je travaille sur MicrosoftVisualBasic
Express 2008,et sur le point de terminer
,j'ai créé 100 textbox ayant chacun
un chiffre:

Dim k As Single
...##je déclare les variables##
Dim dj As Single

k = (((Me.TextBox5.Text) ^ 2) - ( 0.1 ^ 2))
Form3.TextBox1.Text = k
...##je déclare un chiffre pour chaque tbox##
dj = (((Me.TextBox5.Text) ^ 2) - ( 10 ^ 2))
Form3.TextBox100.Text = dj

Je cherche le chiffre max de ces 100 textbox,
j'enverrai le chiffre sur Form3.TextBox101
Et je déclarerai ;
If Form3.TextBox101.Text=k then
Form3.TextBox102.Text=0.1
End if
?
If Form3.TextBox101.Text=dj then
Form3.TextBox102.Text=10
End if
Ma question est de comment trouver le
chiffre max et l'envoyer sur Form3.TextBox101
Je doit être en train de chercher un exemple
Sur les forums mais si quelqu'un aurait une
réponse ou même un début de réponse,
J'apprécierais beaucoups
Merci d'avance
Essenge11

5 réponses

essenge11 Messages postés 14 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 11 février 2011
4 août 2009 à 02:54
Bonjour,
Voilà ce qui marche pour trouver le chiffre
max sur 100 TextBox;

Dim k As Single
...##je déclare les variables##
Dim dj As Single
Dim max As Single

k = (((Me.TextBox5.Text) ^ 2) - ( 0.1 ^ 2))
Form3.TextBox1.Text = k
...##je déclare un chiffre pour chaque tbox##
dj = (((Me.TextBox5.Text) ^ 2) - ( 10 ^ 2))
Form3.TextBox100.Text = dj

For Each c As Control In Form3.Controls
If (c.GetType() Is GetType(TextBox)) Then
For Each t In c.Name
If c.Text > max Then
max = c.Text
End If
Next

Me.TextBox11.Text = max
End If
Next

Pour "Form3.TextBox101.Text",j'ai remplaçé par
"Me.TextBox11.Text",pour le reste je m'arran-
gerais.C'est super,merçi beaucoups
essenge11
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
3 août 2009 à 06:37
en pseudocode, ca donnerai :

max = text1.text

for each t in mesTextboxes
if t.text > max then
max = t.text
end if
next

text101.text = max


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
3 août 2009 à 09:29
Salut,

Si tes controles sont dans le meme niveau sur ta form.
Attention si ils sont dans un contenaire il faut les prendres dans ce dernier ou faire un parcours recursif.

Une boucle du type

For Each c As Control In Me.Controls
  If (c.GetType() Is GetType(TextBox)) Then
      MessageBox.Show(c.Name)
  End If
Next
0
essenge11 Messages postés 14 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 11 février 2011
3 août 2009 à 19:08
Effectivement,
For Each c As Control In Form3.Controls
If (c.GetType() Is GetType(TextBox)) Then
With (Me.ListBox2.Items)
.Insert(0, c.Name)
End With
End If
Next
cela fait une belleliste de mes contrôles sur un
listbox,mais pour la boucle récursif,j'aurai
besoins d'une ptit leçon de vie mais je crois
avoir maintenant une bonne idée et un début
de réponse,merci.
essenge11
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
3 août 2009 à 20:01
Si tu as tous tes controles pas besoin de boucles recursives.

Sinon

Le principe

'appel
contenu = compteResursif(me)

'fonction

public function compteResursif(Control c) as int32

for each c as control in c.controls
if (c.GetType() Is GetType(TextBox)) Then
'blabla
return .....
else
if (c.Controls.count <> 0) then
return compteResursif(c)
end if
next

end sub

C'est le principe a toi d'adapter.
0
Rejoignez-nous