cs_PeD
Messages postés63Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention13 avril 2013
-
28 déc. 2008 à 11:01
cs_Jielde
Messages postés226Date d'inscriptionmardi 17 octobre 2000StatutMembreDernière intervention 1 décembre 2010
-
6 janv. 2009 à 17:39
Bonjour,
( je passe du VB6 au Visual Basic 2008 Express - pas toujours facile )
En VB6 il y a la propriété Index qui me permettait de faire du travail en boucle et donc d'éviter des centaines de lignes de code.
Je suis occupé à transférer manuellement des applications de l'un vers l'autre.
Je ne retrouve plus cette propriété en VB.Net !! Régression ????
J'ai cherché dans le forum. Je vois que plusieurs personnes ont (eu) le même problème.Mais aucune réponse à ces questions, sauf une personne qui dit qu'elle a trouvé, mais ne donne pas la référence de la solution ( merci ! ).
Quelqu'un ici a t il cette solution qui éviterait une débauche de code, et qui ravirait aussi apparemment plusieurs codeurs.
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 28 déc. 2008 à 15:51
Salut,
La solution serait peut être de créer une collection de TextBox, de Labels, ...
Je fais un exemple :
Dans celui-ci je vais créer 10 TextBox et les rajouter dans la Form. Ensuite, je les rajoute aussi dans la collection TempsTour et ainsi je peux accéder à chacune des TextBox grâce à une boucle et cela fonctionne pour chaque contrôle ( Labels, PictureBox, ...)
Dim TempsTour As New Collections.Generic.List(Of TextBox)
For nb As Integer = 0 To9 ' Boucle créant 10 TextBox
Dim TextBoxTempsTour As New TextBox
' Ajout de la TextBox en cours dans la Form
Me.Controls.Add(TextBoxTempsTour)
' Ajout de la TextBox en cours dans la collection TempsTour
TempsTour.Add(TextBoxTempsTour)
Next
For nb As Integer = 0To9 ' Grâce à la collection TempsTour,
' On peut accéder à chaque TextBox
' et modifier leurs propriétés
'
' TempsTour(0) Première TextBox
' TempsTour(1) Deuxième TextBox
' On modifie l'emplacement de chaque
' TextBox
TempsTour(nb).Location = New System.Drawing.Point(10, nb * 30)
' Chaque TextBox aura comme Texte
' son index
TempsTour(nb).Text = nb
Next
<hr size="2" width="100%" />
J'espère que cette méthode correspond bien à ce que tu recherches Sinon, n'hésites pas
tovin
Messages postés164Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention14 août 20133 28 déc. 2008 à 11:49
Bonjour,
Effectivement, on ne peut plus indexer les contrôles.
J'applique le moyen suivant :
1) déclaration des contrôles indicés:
Public Sub New()
' Cet appel est requis par le Concepteur Windows Form. InitializeComponent()
label(0) = Label1
label(1) = Label2
label(2) = Label3
' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
End Sub
2) Ensuite, on peut jouer sur les contrôles, par exemple :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
cs_PeD
Messages postés63Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention13 avril 2013 28 déc. 2008 à 13:07
Pour Fauve,
J'ai ( entre autres ) 10 occurences de 3 TextBox ( TextBoxA Temps du Tour, TextBoxB Meilleur Temps, TextBoxC = Temps moyen ) pour 10 voitures donc.
Je collecte les informations pour 10 voitures : temps du Tour de Car(Index) puis je mets à jour les temps.
Tout cela avec des boucles qui évite trop de code.
Mais j'ai la même chose pour les Labels, les Images, mes PictureBox, des Shapes,..
Rien que la définition des objects pouvait être simple ( à lalecture ).
Pourquoi cette facilité a t elle disparu?
Pour Tovin,
Je vais essayer ton approche. Même si cela demande des transferts inutiles ( donc du temps CPU utilisé ).
Merci à vous deux.
Pierre
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 28 déc. 2008 à 21:37
Tyrell2
PeD > Quand tu cliques sur Réponse Acceptée, cela veut dire que la réponse qui a été donné t'a permis de résoudre ton problème mais elle sert aussi aux autres membres qui rencontreront le même problème que toi de trouver une solution