Me.controls textbox [Résolu]

Signaler
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013
-
Portos67
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013
-
Bonjour,

Je vais essayer de faire simple.

J'ai environ 450 textbox, dont je dois récupérer la valeur pour la stocké dans un fichier .ini
Le problème c'est que évidemment, je veux éviter de taper 450 textbox.text , etc... Donc j'ai créé une boucle, qui va me permettra de passer sur toutes les textbox. Le truc c'est que controls("textbox" & i).text, me renvoie une erreur sur cette ligne "la référence d'objet n'est pas définie à une instance d'un obget...

La galère, connaissez la bonne méthode ?

Merci

11 réponses

Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013

c'est bon j'ai trouvé mon erreur il fallait faire

frmListView.Tabpage1.Controls("textbox" & i + 1).Text)

au lieu de

frmListView.TabControl1.Controls("textbox" & i + 1).Text)



merci beaucoup !!!!
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
33
certainement que pour cette valeur précise de i, tu n'as pas de "textbox" & i qui existe dans ton écran

vérifie la valeur de i au moment ou survient l'erreur.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013

voila code

For i = 1 To 40
sw.WriteLine("p" & i & "=" & frmListView.Controls.Item("textbox" & i + 1).Text)
Next


La textbox2 existe bien pourtant....
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013

pardon j'ai fais une erreur

For i = 1 To 40
sw.WriteLine("p" & i & "=" & frmListView.Controls("textbox" & i + 1).Text)
Next

salut,
moi je ferais comme cela :

        Dim b As Control
        Dim f As IO.FileStream = New IO.FileStream(Application.StartupPath & "\blah.ini", IO.FileMode.OpenOrCreate)
        Dim sw As IO.StreamWriter = New IO.StreamWriter(f)
        For Each b In Me.Controls
            If b.Name.Contains("Text") = True Then
                sw.WriteLine(b.Name & "=" & b.Text)
            End If
        Next
        sw.Close()
        f.Close()
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013

ouais pas mal la solution mais je viens de la tester, et cela ne marche pas, il ne trouve aucun control se nommant "text".
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
33
banana32 > Pas bon. Me.controls ne contient pas forcément, uniquement des textbox. Dans ton cas, tu traite tous les controls et pas uniquements les textbox.

Portos67 > Tes textbox sont-ils directement sur la form ?
Ne seraient-ils pas, par hasard sur un autre contener (panel, groupbox, ...)?
Si c'est le cas, c'est la collections Controls de ce contener qu'il faut traiter et non pas celle de la form.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i

Contains est sensible a la casse (majuscules minuscules). J'ai écrit Text mais tu as peut être text je ne sais pas.
casy -> on cherche les noms des contrôle contenant la chaine "text"

bonne soirée a tous les 2
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
33
on cherche les noms des contrôle contenant la chaine "text"

Ah!!! excuse moi, j'ai du mal interpréter la phrase suivante alors
Donc j'ai créé une boucle, qui va me permettra de passer sur toutes les textbox. Le truc c'est que controls("textbox" & i).text


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i

@casy -> oh tu sais des fois ca m'arrive aussi passe une bonne soirée ^^
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
14 janvier 2013

casy tu as raison, mes textbox sont dans un tabcontrol.

J'ai essayé ceci mais ca ne marche pas, ou alors j'ai mal compris...

For i = 1 To 40
sw.WriteLine("p" & i & "=" & frmListView.TabControl1.Controls("textbox" & i + 1).Text)
Next