Soyez le premier à donner votre avis sur cette source.
Snippet vu 10 688 fois - Téléchargée 30 fois
'exemple pour un calendrier 'J'ai 42 case pour mes jours du mois (7 jours semaines * 6 semaines = 42 jours) 'Donc je me crée un tableau d'entier Dim Ljour(41) As Integer 'qui sera accessible partout dans le projet 'ensuite à la fin de Private Sub InitializeComponent(), appeler une fonction qui va remplir le tableau. (C'est le buot chiant du code, puisqu'il faut le faire pour tout les item) '********************************************* Me.Ljour(0) = index(Me.Ljour8.Name) Me.Ljour(1) = index(Me.Ljour9.Name) Me.Ljour(2) = index(Me.Ljour10.Name) Me.Ljour(3) = index(Me.Ljour11.Name) Me.Ljour(4) = index(Me.Ljour12.Name) Me.Ljour(5) = index(Me.Ljour13.Name) Me.Ljour(6) = index(Me.Ljour14.Name) Me.Ljour(7) = index(Me.Ljour15.Name) Me.Ljour(8) = index(Me.Ljour16.Name) Me.Ljour(9) = index(Me.Ljour17.Name) '........ '********************************************* 'La fonction index va rechercher dans la form les object pour trouver leur index, c'est très rapide, ça ralentie vramient très peux une application Public Function index(ByVal nom As String) As Integer Static i As Integer For i = 0 To Me.Controls.Count - 1 If nom = Me.Controls(i).Name Then Exit For End If Next i Return i End Function '********************************************* 'ensuite, quand on veux un object indexé, il faut simplement faire ceci Me.Controls(Ljour(Index)).Text 'Desfois, pour avoir certaine fonctionnalité, mieux vaut ajouter ceci, pour lui définir le type de control CType(Me.Controls(Ljour(i)), Label).BorderStyle = 1
24 avril 2007 à 22:04
24 avril 2007 à 11:22
NoKurzTif autant que je sache, seul les controls sont indexés, donc ta méthode ne marche pas avec des objets, comme dans VB6, toujours étant ,merci beaucoup à ELWINGIL ,car sans indexage c'est pas très souple..++
13 nov. 2006 à 20:43
Je voulais dire 2 choses eu égard à ce que j'ai lu plus haut :
1_) les contrôles disposent d'index
2_) y'a pas de problèmes pour en masquer certains
En fait les contrôles disposent d'index qui sont initialisés à la création.
Le dernier contrôle créé a l'index zéro ! Il faut juste faire gaffe lors de la création et du placement des contrôles, mais ensuite, on peut utiliser une boucle for each.. Ouais, ça c'est vraiment chiant par rapport à VB6 !!!
Il est aussi possible de gérer en utilisant les propriétés des collections (en l'occurence, collection de contrôles !)
Voici à titre d'exemple un code qui affiche les vendredis de chaque mois :
Private Sub RefreshChoiseDate()
Dim i As Integer, j As Integer
Dim maxMonthCtrl As Integer = 6
Dim targetMonth As Byte = CByte(Month(TargetDate))
Dim tempoDate As Date
Dim firstDate As Date = DateAdd(DateInterval.Month, -maxMonthCtrl + 1, TargetDate)
Dim firstMonth As Integer = Month(firstDate)
Dim firstYear As Integer = Year(firstDate)
firstDate = DateAndTime.DateSerial(firstYear, firstMonth, 1)
firstDate = CDate(SearchFriday(firstDate))
i 0 : j -1
For Each ctrl As Control In gb1.Controls
tempoDate = DateAdd(DateInterval.Day, i * 7, firstDate)
i i + 1 : j j + 1
ctrl.Text = tempoDate.ToString("dd/MM")
If DateAndTime.Day(tempoDate) > 3 And (j Mod 5) 0 Then ctrl.Text "" : i = i - 1
If DateAndTime.Day(tempoDate) < 25 And (j Mod 5) 4 Then ctrl.Text "" : i = i - 1
If DateValue(CStr(tempoDate)) = DateValue(CStr(TargetDate)) Then ctrl.Select()
Next ctrl
For Each ctrl As Control In gb1.Controls
ctrl.Visible CBool(IIf(ctrl.Text "", False, True))
Next
Me.Refresh()
End Sub
6 oct. 2004 à 18:32
pour commencer cette source et les commentaires associés sont tres bien Merci beaucoup.
je voudrais savoir queqleu chose.
sur un formulaire windows j'ai disont 10 listbox (+ ou - ca change rien mais prenons 10)
j'aimerais que losque je clique sur n'importe laquelle de ces listbox un formulaire apparaisse bon je sais que pour faire apparaitre le formulaire c'est : nomduformulaire.show la j'ai pas de probleme mais mon probleme ce situe dans le fait que je voudrais pour cela acceder a une instructioen de type:
private sub listbox_doubleclick(.....................)
nomduformulaire.show
end sub
hors si je construit comme indiqué plus haut j'accede a chacune des listbox par a l'ensembe
merci de votre aide
22 juil. 2004 à 23:35
ça dépend vraiment du code que je fais. je prend même les 2 desfois
par exemple, je me fabrique une structure qui contient pleins d,info et qui contient le lien vers le control qui est en tableau. Comme ça, je pert jamais mes control dans un environnement à 100% dynamique
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.