Simplification du code pour écrire dans plusieurs Textbox

Résolu
Signaler
Messages postés
54
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
15 août 2007
-
Messages postés
54
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
15 août 2007
-
Bonjour,
Sous VB 2005, j'ai écrit le code ci-dessous de manière à ce que le contenu d'un fichier s'ouvre dans plusieurs TextBox.
Y-a-t'il un moyen de simplifier ce code car j'ai de nombreux fichiers à écrire et je ne voudrai pas à avoir à répéter toutes ces lignes pour chaque fichier.
Sous VB6, on pouvait grouper plusieurs textbox et on n'avait alors qu'une seule ligne à écrire pour regrouper toutes les textbox ( EX : ......For ouvrir = 0 To 7......).
Private

Sub Command8_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Command8.Click

Dim StrReader
As
New System.IO.StreamReader(
"C:\Projet\Donnees\Contact1.txt")

If Text15.Text =
"DUPONT"
Then
Text20.Text = StrReader.ReadLine
Text21.Text = StrReader.ReadLine
Text22.Text = StrReader.ReadLine
Text23.Text = StrReader.ReadLine
Text24.Text = StrReader.ReadLine
Text25.Text = StrReader.ReadLine
Text26.Text = StrReader.ReadLine
Text27.Text = StrReader.ReadLine
StrReader.Close()

End
If
End
Sub

Merci
zazsze

3 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Pourquoi avoir reposter une question, alors que le prolbème est le même. Casy, t'as dis la solution, tu l'as même commencé à l'appliquer. Il fallait donc demmander des explications ici.



Dim TextCollection As New System.Collections.Generic.List(Of System.Windows.Forms.TextBox)
TextCollection.AddRange(New System.Windows.Forms.TextBox() {Text20, Text21, Text22, Text23, Text24, Text25, Text26, Text27})

Private Sub Command8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Command8.Click
  Dim StrReader As New System.IO.StreamReader("C:\Projet\Donnees\Contact1.txt")
  If Text15.Text = "DUPONT" Then
    For Each TextBox As System.Windows.Forms.TextBox In TextCollection
      TextBox.Text = StrReader.ReadLine
    Next
    StrReader.Close()
  End If
End Sub,

----

(Coloration syntaxique automatique par Kenji)





__________
Kenji
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Tu peux le faire aussi en VB2005, mais ce qui était automatique en VB6, doit etre désormais fait manuellement.

Il faut que tu crée une collection ou tu ajoute tes textbox. Ensuite au lieu d'appeler chacune des textbox, tu peux apeller chacun des item de la collection.

Regarde du coté des collections donc.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
54
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
15 août 2007

salut,
Désolé, je voulais juste me rabattre vers le thème "...divers /débutant..." qui correspondait plus à mon niveau pour ne pas encombrer cette section.
En tout cas merci, ça fonctionne à merveille.

zazsze