Me.controls textbox [Résolu]

Messages postés
72
Date d'inscription
vendredi 25 février 2005
Dernière intervention
14 janvier 2013
- - Dernière réponse : Portos67
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Dernière intervention
14 janvier 2013
- 13 mai 2010 à 01:28
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
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Dernière intervention
14 janvier 2013
3
Merci
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 !!!!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 96 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Portos67
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
0
Merci
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
Commenter la réponse de cs_casy
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Dernière intervention
14 janvier 2013
0
Merci
voila code

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


La textbox2 existe bien pourtant....
Commenter la réponse de Portos67
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Dernière intervention
14 janvier 2013
0
Merci
pardon j'ai fais une erreur

For i = 1 To 40
sw.WriteLine("p" & i & "=" & frmListView.Controls("textbox" & i + 1).Text)
Next
Commenter la réponse de Portos67
0
Merci
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()
Commenter la réponse de Utilisateur anonyme
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Dernière intervention
14 janvier 2013
0
Merci
ouais pas mal la solution mais je viens de la tester, et cela ne marche pas, il ne trouve aucun control se nommant "text".
Commenter la réponse de Portos67
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
0
Merci
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
Commenter la réponse de cs_casy
0
Merci
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
Commenter la réponse de Utilisateur anonyme
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
0
Merci
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
Commenter la réponse de cs_casy
0
Merci
@casy -> oh tu sais des fois ca m'arrive aussi passe une bonne soirée ^^
Commenter la réponse de Utilisateur anonyme
Messages postés
72
Date d'inscription
vendredi 25 février 2005
Dernière intervention
14 janvier 2013
0
Merci
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
Commenter la réponse de Portos67

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.