Indexer des textbox [Résolu]

syberia76 2 Messages postés lundi 12 juin 2006Date d'inscription 14 mai 2007 Dernière intervention - 8 mai 2007 à 18:28 - Dernière réponse : cs_Jminterroge 6 Messages postés samedi 2 octobre 2010Date d'inscription 7 janvier 2014 Dernière intervention
- 13 oct. 2010 à 13:36
Bonjour,
Je fais un petit programme (Visual Basic 2005) dans lequel je copie les valeurs de 32 Texbox dans 32 variables de type "STRING"
Bien sur, le programme fonctionne en tapant :
Variable(1) = TextBox1.Text
Variable(2) = TextBox2.Text
....
Mais je souhaitais faire une boucle "for next"
J'ai essayé ceci :
For i = 1 to 32
Variable(i) = Me.Controls ("TextBox" & CStr (i)).Text
Next i

J'obtiens un erreur "La référence d'objet n'est pas définie à une instance d'un objet"  Conseil de dépannage "Utilisez le mot clé "new" pour créer une instance d'objet".
Etant donné que je suis débutant , je ne sais pas quoi faire...
Merci par avance pour votre aide et si l'indexation de textbox n'est pas possible en VB2005, je me contenterais du ligne par ligne
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 8 mai 2007 à 23:19
3
Merci
Au fait, j'ai essayer le code que tu as donné au tout début, avec un tableau de string pour Variable, chez moi il marche sans problème

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #

Merci cs_casy 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de cs_casy
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 8 mai 2007 à 18:38
0
Merci
Effectivement l'indexation n'existe plus en .Net. La solution est de passer par les colllections

Sujet régulièrement abordé sur le site, il doit même y avoir quelques sources ici, voire des snippets sur Codyx.org

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 8 mai 2007 à 18:41
0
Merci
Pour des variables String, tu pourrais aussi, au lieu de faire 32 variables, un tableau de type string de 32 élément, ça serait plus simple.

Dim Variable(31) as String

Sachant que les tableaux partent toujours de 0

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 8 mai 2007 à 23:17
0
Merci
Voici un petit exemple de création et de travail avec des controles indexés comme en vb6

Tu crée un nouveau projet avec une feuille. Tu affiche la partie code de la feuille et tu y colle ce code dedans entre les lignes Class/ End Class, et tu execute

Ensuite tu balade la souris sur les textbox et tu regarde.
L'évènement MouseEnter se produit lorsque la souris passe au dessu d'un controle, MouseLeave lorsqu'elle le quitte.

' Creation de la collection de textbox
Dim ColTxtBx As New Collections.ObjectModel.Collection(Of TextBox)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles
MyBase.Load

        '--- Préparation du
contexte -----------------------------------------
        Me.Size = New Size(700, 900)
        Dim bt As New Button
        bt.Location = New Point(500, 100)
        bt.Text = "Colorer les textboxs"
        bt.AutoSize = True
        Me.Controls.Add(bt)
        AddHandler bt.Click, AddressOf Button1_Click
        '---------------------------------------------------------------------

        '--- Creation des textboxs indexées
----------------------------------
        For i As Integer = 0 To 31
                ' Creation de
chaque textbox
                ColTxtBx.Add(New TextBox)
                ' Ajout du nouveau controle à la collection de
controles de la feuille
                Me.Controls.Add(ColTxtBx(i))
                ' Initialisation de quelques propriétés de la
textbox indexée
                ColTxtBx(i).Name = "TextBox
" & (i + 1).ToString
                ColTxtBx(i).Location = New Point(45, 5
+ (ColTxtBx(i).Height + 5) * i)
                ColTxtBx(i).Text = ColTxtBx(i).Name
                ' Abonnement à 2 des évènements de la
textbox
                AddHandler ColTxtBx(i).MouseEnter, AddressOf ColTxtBx_MouseEnter
                AddHandler ColTxtBx(i).MouseLeave, AddressOf ColTxtBx_MouseLeave
        Next
        '---------------------------------------------------------------------
End Sub

Private Sub ColTxtBx_MouseEnter(ByVal sender As Object, ByVal e
As System.EventArgs)
        ' Récupère
une référence sur le textbox déclencheur
        Dim sd As TextBox = CType(sender,
TextBox)

        ' Modification de quelques
paramètres de la textbox
        sd.Font = New Font(sd.Font, FontStyle.Bold)
        sd.BackColor = Color.Chocolate
        sd.ForeColor = Color.White
End Sub

Private Sub ColTxtBx_MouseLeave(ByVal sender As Object, ByVal e
As System.EventArgs)
        ' Récupère
une référence sur le textbox déclencheur
        Dim sd As TextBox = CType(sender,
TextBox)

        ' Modification de quelques
paramètres de la textbox
        sd.Font = New Font(sd.Font, FontStyle.Regular)
        sd.BackColor = Color.White
        sd.ForeColor = Color.Black
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        '
Travail sur les textbox indexés
        For i As Integer = 0 To ColTxtBx.Count - 1
                ColTxtBx(i).BackColor = Color.Red
        Next
End Sub

Ce n'est qu'un petit exemple très simple. Maintenant il te reste plus qu'a essayer et fouiller pour adapter à tes besoins.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
syberia76 2 Messages postés lundi 12 juin 2006Date d'inscription 14 mai 2007 Dernière intervention - 14 mai 2007 à 22:54
0
Merci
Un import à faire peut-être? il ne fct pas chez moi. Je vais fouiller.  Merci
Commenter la réponse de syberia76
cs_Jminterroge 6 Messages postés samedi 2 octobre 2010Date d'inscription 7 janvier 2014 Dernière intervention - 2 oct. 2010 à 11:31
0
Merci
Ces derniers temps je me suis décidé à développer à nouveau une ancienne application réalisé à partir de Visual Basic 6.
Sans aucune prétention, j'ai mis en ligne cet exemple d'application sur mon blog Jminterroge-OverBlog

Bien à vous tous s'il peut vous servir.
Commenter la réponse de cs_Jminterroge
cs_Jminterroge 6 Messages postés samedi 2 octobre 2010Date d'inscription 7 janvier 2014 Dernière intervention - 13 oct. 2010 à 13:36
0
Merci
Bonjour,

J'ai complété mon exemple d'indexation des "controls" pour Visual Studio Express version 2008 par trois articles complémentaires que vous trouverez sur mon blog Jminterroge-OverBlog.

A bientôt sur un autre thème.
Commenter la réponse de cs_Jminterroge

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.