Textbox(i).text [Résolu]

Signaler
Messages postés
34
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2012
-
Messages postés
34
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2012
-
Salut tout le monde,

Je me demandais s'il était possible d'écrire dans plusieurs textbox en une ligne;
''J'ai 10 textbox; txtNbr1 à txtNbr10
Private Sub Hasard_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Hasard.Click
        For i = 1 To 10
            Randomize()
            RandomNumber = ((Rnd() * 999))
            txtNbr(i).Text = RandomNumber
        Next i
    End Sub


Je veux entrer 10 nombre au hasard pour ensuite les mettre en ordre croissant.

J'ai fais quelques recherche mais j'ai pas trouvé.. =(

Merci

10 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
25
Salut,

C'est un peut plus complexe
désolé j'ai pas de vb.net sous la main

il te reste a completer avec un gettype
ou TypeOf x Is Textbox

For each c as control in me.controls
   ' si le type est textbox
if .... then
directcast(c,textbox).Text = Random
end if
next


Bon dev
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
35
Oui, ou bien plus simple :

Me.Controls("txtNbr" & i.ToString).Text = RandomNumber

A condition que les textbox soient directement sur la form. Si elles sont sur un autre container (panel par exemple), il faudra utiliser la collection Controls du container en question.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
34
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2012

Merci beaucoup.

@ Casy :
Erreur 1 La résolution de surcharge a échoué, car aucun 'Item' accessible ne peut être appelé sans conversion restrictive :
'Public Overridable ReadOnly Default Property Item(key As String) As System.Windows.Forms.Control': L'argument qui correspond au paramètre 'key' passe de 'Double' à 'String'.
'Public Overridable ReadOnly Default Property Item(index As Integer) As System.Windows.Forms.Control': L'argument qui correspond au paramètre 'index' passe de 'Double' à 'Integer'. C:\Source VB NET\MON ORDRE CROISSANT\WindowsApplication1\WindowsApplication1\Form1.vb 8 13 WindowsApplication1


Quelqu'un peux m'expliquer?
Messages postés
34
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2012

Laissez faire, moi le noob j'ai mis % a la place du & ! lol..


Merci beaucoup!
Messages postés
34
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2012

Ennuyant qu'on ne puissent pas supprimer des posts qu'on a faits...

http://www.fhqhosting.com/ui/erreur%20vb.PNG
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
35
quel sont les noms réels (propriétés Name) de tes textbox ?

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
34
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2012

txtNbr1
txtNbr2
txtNbr3
txtNbr4
txtNbr5
txtNbr6
txtNbr7
txtNbr8
txtNbr9
txtNbr10
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
25
Le probleme est ailleurs
Car le code suivant
fonctionne tres bien.

for (int i = 0; i < this.Controls.Count; i++)
    {
     if (this.Controls["TextBox" + i.ToString()] is TextBox)
      {
          (this.Controls["TextBox" + i.ToString()] as TextBox).Text = i.ToString();
    }
  }


Les controles doivent etre au meme niveau comme l'indique casy.

Désolé c'est en c# mais ca revient au meme

Utilise le débogguer de visual studio pour comprendre le probleme en ajoutant des espions
sur tes variables.

Bon dev
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
35
Tu dois passer par la collection Controls du container ou sont les textbox.

Si les textbox sont directement sur la form tu fera
Me.Controls("txtNbr" & i.ToString).Text

Si au contraire tes textbox sont, par exemple, sur un panel nommé pannel1, tu fera
Me.Panel1.Controls("txtNbr" & i.ToString).Text


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
34
Date d'inscription
vendredi 12 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2012

Voilà ce que j'en ai fais:
http://www.vbfrance.com/codes/JEUX-KENO_50568.aspx

Merci encore pour l'aide!