tovin
Messages postés164Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention14 août 2013
-
5 juin 2010 à 11:43
yclic
Messages postés31Date d'inscriptiondimanche 22 septembre 2002StatutMembreDernière intervention 9 juin 2010
-
8 juin 2010 à 19:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
yclic
Messages postés31Date d'inscriptiondimanche 22 septembre 2002StatutMembreDernière intervention 9 juin 2010 8 juin 2010 à 19:05
Merci a tous de vos commentaire
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
merci a YAURTECK d'avoir regardé la version vb6 (pour les Load)
... faire du .net serieux !! je suis encore avec mon ZX81
...mettre dans le forum ? ici que des bonnes réponses
dans le forum !!!
merci de vos reponses je vais pouvoir faire chauffer mon ZX
A bientot
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011 7 juin 2010 à 15:27
faites du .net serieux ...
Arreter du faire du vb6 qui compile sous .net reveillez vous
tovin
Messages postés164Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention14 août 20133 7 juin 2010 à 14:09
Bonjour,
Je vois en effet que le code que j'avais donné fonctionne bien sous VB 2005, mais pas sous VB 2008.
Il suffit donc de déclarer Public label(nbre d'indices) as label pour que ça fonctionne :
Public Class Form1
Public label(3) As Label
Public Sub New()
' Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
End Sub
Yaurthek
Messages postés12Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 juin 2009 7 juin 2010 à 12:07
Public Class Form1
Private Sub temp_Click(ByVal sender As Object, ByVal e As EventArgs)
Me.Text = DirectCast(sender, System.Windows.Forms.TextBox).Tag.ToString()
End Sub
'cette liste ne sert a rien pour le fonctionnement,
'elle permet juste de garder une reference des textbox pour pouvoir les modifier facilement
Dim lst As List(Of System.Windows.Forms.TextBox) = New List(Of TextBox)()
Private Sub Form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To 9
Dim temp As System.Windows.Forms.TextBox = New TextBox()
temp.Text = "bou " & i.ToString()
temp.Tag = i
temp.Location = New Point(0, i * 20)
AddHandler temp.Click, New EventHandler(AddressOf temp_Click)
'voila la ligne pour afficher le textbox dans la form...
temp.Parent = Me
lst.Add(temp)
Next
End Sub
End Class
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 6 juin 2010 à 10:39
....
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click, Label2.Click, Label3.Click, Label4.Click, Label5.Click, Label6.Click, Label7.Click, Label8.Click, Label9.Click, Label10.Click, Label11.Click, Label12.Click, Label13.Click, Label14.Click, Label15.Click
'exemple : d'après le caption
Label_ou.Text = "Click sur " & DirectCast(sender, System.Windows.Forms.Label).Text
'exemple, d'après le nom
Label_ou.Text = "Click sur " & DirectCast(sender, System.Windows.Forms.Label).Name.Substring(5)
End Sub
mais c'est une question à poser sur le forum (après recherches), pas à déposer en tant que source, non?...
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011 6 juin 2010 à 03:46
Dim a as Dictionnary(Of Integer, Of TextBox) = New List(Of Integer, Of TextBox)()
correction en :
Dim a as Dictionnary(Of Integer, Of TextBox) = New Dictionnary(Of Integer, Of TextBox)()
petite erreur de ma part lors de l'edition
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 5 juin 2010 à 18:35
note que la bonne place aurait été dans le forum, mais bon voici ce que j'expliquais (en fait pas besoin, claudetom la plus ou moins utilisé ^^)
exemple avec des boutons :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button4.Click, Button3.Click, Button2.Click
Dim Num_Bp As Button = CType(sender, Button)
dim quelbutton as string = Num_Bp.Tag.ToString 'renvoie le tag
End Sub
mais en effet l'idée de la collection de TEBECO est bien plus efficasse !
permet l'ajout, la suppression, l'insertion enfin tout ce que font les collections.
yclic
Messages postés31Date d'inscriptiondimanche 22 septembre 2002StatutMembreDernière intervention 9 juin 2010 5 juin 2010 à 17:20
salut a tous
-- TOVIN j'avais vu cette reponse sur developpez
que je n'ai sans doute pas comprise
voila la reponse de vb:
'Label' est un type et ne peut pas être utilisé en tant qu'expression.
'''''''''''''''''''''''''''''''''''''''
-- LE PIVERT 1ere reponse :aussi long que mon programme
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
--ADN56 trop court pour le debutant (j'ai rien compris)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
--CLAUDETOM ok ça marche avec la modif de LE PIVERT
je vais refaire un essai avec Tag
''''''''''''''''''''''''''''''''''''''''''''''''''''''
Merci a tous pour vos reponse
cs_claudetom
Messages postés115Date d'inscriptionjeudi 11 octobre 2001StatutMembreDernière intervention15 octobre 2012 5 juin 2010 à 16:29
Si cela fonctionne si tu renseigne la propriété Tag de tes labels
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011 5 juin 2010 à 15:25
Dim a as Dictionnary(Of Integer, Of TextBox) = New List(Of Integer, Of TextBox)()
a.Add(1, TextBox1)
a.Add(2, TextBox2)
a.Add(3, TextBox3)
a[1].Text = "texte dans la 1"
ou comme lire la doc, faire du .net plutot que croire que VB6 peut nous sauvez en essayant le programmer a l'ancienne, vous faites du .net niveau Framwork 1.0 la, la 4.0 est sortie mettez vous a jour apprenez les Générique merci d'avance
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 5 juin 2010 à 15:00
Merci CLAUDETOM,
Une petite rectif,ne fonctionne pas avec Tag il faut mettre Text dans cette ligne:
Label_ou.Text = " Clic sur " & CType(sender, Label).Text
@+
cs_claudetom
Messages postés115Date d'inscriptionjeudi 11 octobre 2001StatutMembreDernière intervention15 octobre 2012 5 juin 2010 à 14:17
Voici ma solution
A savoir que j'ai mis les controls label directement sur la form mais ceux-ci aurait pus être mis dans un GroupeBox et donc
Dans la boucle d'assignation de l'évenement click cela aurait été GroupeBox.Controls et non Me.controls.
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Assignation de l'evenement Click à chaque Label
For Each L As Label In Me.Controls
If TypeOf L Is Label Then
If L.Name <> "Label_ou" Then
AddHandler L.Click, AddressOf Label_click
End If
End If
Next
End Sub
'Evenment des labels de 1 à 15
Private Sub Label_click(ByVal sender As Object, ByVal e As System.EventArgs)
Label_ou.Text = ""
Label_ou.Text = " Clic sur " & CType(sender, Label).Tag
End Sub
End Class
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 5 juin 2010 à 13:43
ou en utilisant le tag ! pour chaque label tu y indique un numéro, puis dans le handle de clic tu rajoute tous tes controls et tu test leurs tag
if label.tag = "1" then .....
ou encore select case label.tag
case "1"
....
case "2"
....
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 5 juin 2010 à 11:44
Bonjour,
On peut faire ceci en mettant les labels dans un GroupBox:
Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.Enter
'choix de sélection
Select Case GroupBox1.Text.EndsWith("")
Case Label1.Text.EndsWith("1", True, Nothing)
Label_ou.Text = " clic sur " & 1
Case Label1.Text.EndsWith("2", True, Nothing)
Label_ou.Text = " clic sur " & 2
Case Label1.Text.EndsWith("3", True, Nothing)
Label_ou.Text = " clic sur " & 3
Case Label1.Text.EndsWith("4", True, Nothing)
Label_ou.Text = " clic sur " & 4
Case Label1.Text.EndsWith("5", True, Nothing)
Label_ou.Text = " clic sur " & 5
Case Label1.Text.EndsWith("6", True, Nothing)
Label_ou.Text = " clic sur " & 6
Case Label1.Text.EndsWith("7", True, Nothing)
Label_ou.Text = " clic sur " & 7
Case Label1.Text.EndsWith("8", True, Nothing)
Label_ou.Text = " clic sur " & 8
Case Label1.Text.EndsWith("9", True, Nothing)
Label_ou.Text = " clic sur " & 9
Case Label1.Text.EndsWith("10", True, Nothing)
Label_ou.Text = " clic sur " & 10
Case Label1.Text.EndsWith("11", True, Nothing)
Label_ou.Text = " clic sur " & 11
Case Label1.Text.EndsWith("12", True, Nothing)
Label_ou.Text = " clic sur " & 12
Case Label1.Text.EndsWith("13", True, Nothing)
Label_ou.Text = " clic sur " & 13
Case Label1.Text.EndsWith("14", True, Nothing)
Label_ou.Text = " clic sur " & 14
Case Label1.Text.EndsWith("15", True, Nothing)
Label_ou.Text = " clic sur " & 15
End Select
End Sub
@+ Le Pivert
tovin
Messages postés164Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention14 août 20133 5 juin 2010 à 11:43
Bonjour,
Peut-être de la façon suivante, on peut alors retrouvé les 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
A+
8 juin 2010 à 19:05
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
merci a YAURTECK d'avoir regardé la version vb6 (pour les Load)
... faire du .net serieux !! je suis encore avec mon ZX81
...mettre dans le forum ? ici que des bonnes réponses
dans le forum !!!
merci de vos reponses je vais pouvoir faire chauffer mon ZX
A bientot
7 juin 2010 à 15:27
Arreter du faire du vb6 qui compile sous .net reveillez vous
7 juin 2010 à 14:09
Je vois en effet que le code que j'avais donné fonctionne bien sous VB 2005, mais pas sous VB 2008.
Il suffit donc de déclarer Public label(nbre d'indices) as label pour que ça fonctionne :
Public Class Form1
Public label(3) As Label
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
7 juin 2010 à 12:07
Private Sub temp_Click(ByVal sender As Object, ByVal e As EventArgs)
Me.Text = DirectCast(sender, System.Windows.Forms.TextBox).Tag.ToString()
End Sub
'cette liste ne sert a rien pour le fonctionnement,
'elle permet juste de garder une reference des textbox pour pouvoir les modifier facilement
Dim lst As List(Of System.Windows.Forms.TextBox) = New List(Of TextBox)()
Private Sub Form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To 9
Dim temp As System.Windows.Forms.TextBox = New TextBox()
temp.Text = "bou " & i.ToString()
temp.Tag = i
temp.Location = New Point(0, i * 20)
AddHandler temp.Click, New EventHandler(AddressOf temp_Click)
'voila la ligne pour afficher le textbox dans la form...
temp.Parent = Me
lst.Add(temp)
Next
End Sub
End Class
6 juin 2010 à 10:39
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click, Label2.Click, Label3.Click, Label4.Click, Label5.Click, Label6.Click, Label7.Click, Label8.Click, Label9.Click, Label10.Click, Label11.Click, Label12.Click, Label13.Click, Label14.Click, Label15.Click
'exemple : d'après le caption
Label_ou.Text = "Click sur " & DirectCast(sender, System.Windows.Forms.Label).Text
'exemple, d'après le nom
Label_ou.Text = "Click sur " & DirectCast(sender, System.Windows.Forms.Label).Name.Substring(5)
End Sub
mais c'est une question à poser sur le forum (après recherches), pas à déposer en tant que source, non?...
6 juin 2010 à 03:46
correction en :
Dim a as Dictionnary(Of Integer, Of TextBox) = New Dictionnary(Of Integer, Of TextBox)()
petite erreur de ma part lors de l'edition
5 juin 2010 à 18:35
exemple avec des boutons :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button4.Click, Button3.Click, Button2.Click
Dim Num_Bp As Button = CType(sender, Button)
dim quelbutton as string = Num_Bp.Tag.ToString 'renvoie le tag
End Sub
mais en effet l'idée de la collection de TEBECO est bien plus efficasse !
permet l'ajout, la suppression, l'insertion enfin tout ce que font les collections.
5 juin 2010 à 17:20
-- TOVIN j'avais vu cette reponse sur developpez
que je n'ai sans doute pas comprise
voila la reponse de vb:
'Label' est un type et ne peut pas être utilisé en tant qu'expression.
'''''''''''''''''''''''''''''''''''''''
-- LE PIVERT 1ere reponse :aussi long que mon programme
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
--ADN56 trop court pour le debutant (j'ai rien compris)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
--CLAUDETOM ok ça marche avec la modif de LE PIVERT
je vais refaire un essai avec Tag
''''''''''''''''''''''''''''''''''''''''''''''''''''''
Merci a tous pour vos reponse
5 juin 2010 à 16:29
5 juin 2010 à 15:25
a.Add(1, TextBox1)
a.Add(2, TextBox2)
a.Add(3, TextBox3)
a[1].Text = "texte dans la 1"
ou comme lire la doc, faire du .net plutot que croire que VB6 peut nous sauvez en essayant le programmer a l'ancienne, vous faites du .net niveau Framwork 1.0 la, la 4.0 est sortie mettez vous a jour apprenez les Générique merci d'avance
5 juin 2010 à 15:00
Une petite rectif,ne fonctionne pas avec Tag il faut mettre Text dans cette ligne:
Label_ou.Text = " Clic sur " & CType(sender, Label).Text
@+
5 juin 2010 à 14:17
A savoir que j'ai mis les controls label directement sur la form mais ceux-ci aurait pus être mis dans un GroupeBox et donc
Dans la boucle d'assignation de l'évenement click cela aurait été GroupeBox.Controls et non Me.controls.
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Assignation de l'evenement Click à chaque Label
For Each L As Label In Me.Controls
If TypeOf L Is Label Then
If L.Name <> "Label_ou" Then
AddHandler L.Click, AddressOf Label_click
End If
End If
Next
End Sub
'Evenment des labels de 1 à 15
Private Sub Label_click(ByVal sender As Object, ByVal e As System.EventArgs)
Label_ou.Text = ""
Label_ou.Text = " Clic sur " & CType(sender, Label).Tag
End Sub
End Class
5 juin 2010 à 13:43
if label.tag = "1" then .....
ou encore select case label.tag
case "1"
....
case "2"
....
5 juin 2010 à 11:44
On peut faire ceci en mettant les labels dans un GroupBox:
Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.Enter
'choix de sélection
Select Case GroupBox1.Text.EndsWith("")
Case Label1.Text.EndsWith("1", True, Nothing)
Label_ou.Text = " clic sur " & 1
Case Label1.Text.EndsWith("2", True, Nothing)
Label_ou.Text = " clic sur " & 2
Case Label1.Text.EndsWith("3", True, Nothing)
Label_ou.Text = " clic sur " & 3
Case Label1.Text.EndsWith("4", True, Nothing)
Label_ou.Text = " clic sur " & 4
Case Label1.Text.EndsWith("5", True, Nothing)
Label_ou.Text = " clic sur " & 5
Case Label1.Text.EndsWith("6", True, Nothing)
Label_ou.Text = " clic sur " & 6
Case Label1.Text.EndsWith("7", True, Nothing)
Label_ou.Text = " clic sur " & 7
Case Label1.Text.EndsWith("8", True, Nothing)
Label_ou.Text = " clic sur " & 8
Case Label1.Text.EndsWith("9", True, Nothing)
Label_ou.Text = " clic sur " & 9
Case Label1.Text.EndsWith("10", True, Nothing)
Label_ou.Text = " clic sur " & 10
Case Label1.Text.EndsWith("11", True, Nothing)
Label_ou.Text = " clic sur " & 11
Case Label1.Text.EndsWith("12", True, Nothing)
Label_ou.Text = " clic sur " & 12
Case Label1.Text.EndsWith("13", True, Nothing)
Label_ou.Text = " clic sur " & 13
Case Label1.Text.EndsWith("14", True, Nothing)
Label_ou.Text = " clic sur " & 14
Case Label1.Text.EndsWith("15", True, Nothing)
Label_ou.Text = " clic sur " & 15
End Select
End Sub
@+ Le Pivert
5 juin 2010 à 11:43
Peut-être de la façon suivante, on peut alors retrouvé les 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
A+