drunkmaster
Messages postés3Date d'inscriptionjeudi 18 août 2005StatutMembreDernière intervention22 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!!
sgeraud39
Messages postés1Date d'inscriptiondimanche 29 décembre 2002StatutMembreDerniè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és608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 22 déc. 2006 à 12:32
Ca fait plaisir de faire plaisir ...
Bonnes fêtes
Afyn - Navedac
Liptipoyon
Messages postés13Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention29 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és608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 22 déc. 2006 à 10:41
Liptipoyon
Messages postés13Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention29 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és256Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 6 novembre 20091 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))
22 juil. 2008 à 16:56
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?
6 janv. 2007 à 06:33
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
22 déc. 2006 à 12:32
Bonnes fêtes
Afyn - Navedac
22 déc. 2006 à 11:26
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+
22 déc. 2006 à 10:41
http://www.vbfrance.com/codes/GROUPE-CONTROLES-VB6-VISUAL-BASIC-2005-EXPRESS-EDITION_36228.aspx
Afyn - Navedac
22 déc. 2006 à 09:11
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+
21 déc. 2006 à 23:28
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