GROUPE DE CONTRÔLE ET INDEXATION

TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 - 21 déc. 2006 à 23:28
drunkmaster Messages postés 3 Date d'inscription jeudi 18 août 2005 Statut Membre Dernière intervention 22 juillet 2008 - 22 juil. 2008 à 16:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40794-groupe-de-controle-et-indexation

drunkmaster Messages postés 3 Date d'inscription jeudi 18 août 2005 Statut Membre Dernière intervention 22 juillet 2008
22 juil. 2008 à 16:56
Ce qui est bizarre c'est qu'en convertissant un prog VB6 avec des index en VB.net on retrouve l'index dans la propriété de l'objet et le même fonctionnement qu'en VB6!!

On trouve dans l'éditeur de code de la form :

Me.NOMDELOBJET.SetIndex(NOMDELOBJET_4, CTYPE(4, Short))
Me.NOMDELOBJET.SetIndex(NOMDELOBJET_3, CTYPE(3, Short))
Me.NOMDELOBJET.SetIndex(NOMDELOBJET_2, CTYPE(2, Short))
Me.NOMDELOBJET.SetIndex(NOMDELOBJET_1, CTYPE(1, Short))

Étrange non?
sgeraud39 Messages postés 1 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 6 janvier 2007
6 janv. 2007 à 06:33
pour ma part j'ai fais ceci.
Public Class Form1
Dim Etiquette(0 To 10) As Button

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


Etiquette(1) = Button1
Etiquette(2) = Button2


End Sub



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Etiquette(1).Text = "oui"
Etiquette(2).Text = "non"

End Sub
End Class
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
22 déc. 2006 à 12:32
Ca fait plaisir de faire plaisir ...

Bonnes fêtes

Afyn - Navedac
Liptipoyon Messages postés 13 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 29 janvier 2007
22 déc. 2006 à 11:26
Grand Merci Afyn,

J'ai effectivement touvé une solution à ma question.
=>
Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim i As Integer
Dim x As Object

i = 1
For Each x In Me.Controls
If TypeOf x Is Label Then
Etiquette(i) = x
AddHandler Etiquette(i).Click, AddressOf e_click
i = i + 1
End If
Next
End Sub

Private Sub e_click(ByVal sender As Object,ByVal e As System.EventArgs)
''''
End Sub

Il n'est jamais trop tard pour apprendre... ;)

A+
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
22 déc. 2006 à 10:41
Liptipoyon Messages postés 13 Date d'inscription mardi 26 octobre 2004 Statut Membre Dernière intervention 29 janvier 2007
22 déc. 2006 à 09:11
Bonjour,
Je ne suis pas non plus un expert VB .NET, mais c'est vrai que ta source répond bien à un problème que j'ai rencontré sans pour autant le solutionner. Donc je t'en remercie.
Pense-tu qu'il soit possible comme dans VB6 de capter un événement sur le group de contrôles ce qui éviterait parfois des lignes de code redondante.
Merci
Bonne prog A+
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
21 déc. 2006 à 23:28
Bonsoir,
Ta solution présupose que les controls existent déjà. Il y a plus simple :
- Déclarer un tableau de Labels comme membre de ta classe form
- dans le new() créér les instances de controls et les affecter à la collection controls
de ton form ET VOILA !
Après tu peux utiliser n'importe quel control du tableau en le nommant avec son index !
Public Partial Class MainForm
public labelz(10) as Label
Public Sub New()
dim i as integer
Me.InitializeComponent()
For i=0 To 10
labelz(i)=New Label
labelz(i).Text="Etiquette No"+i.ToString()
labelz(i).Top=labelz(i).Height/2+(i+1)*labelz(i).Height
Me.Controls.Add(labelz(i))

Next

End Sub
End Class
Rejoignez-nous