INDEX EN VB2008

tovin Messages postés 164 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 14 août 2013 - 5 juin 2010 à 11:43
yclic Messages postés 31 Date d'inscription dimanche 22 septembre 2002 Statut Membre Derniè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.

https://codes-sources.commentcamarche.net/source/51845-index-en-vb2008

yclic Messages postés 31 Date d'inscription dimanche 22 septembre 2002 Statut Membre Derniè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és 467 Date d'inscription lundi 24 juin 2002 Statut Membre Derniè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és 164 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 14 août 2013 3
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()

label(0) = Label1
label(1) = Label2
label(2) = Label3

' Ajoutez une initialisation quelconque après l'appel InitializeComponent().

End Sub
Yaurthek Messages postés 12 Date d'inscription samedi 1 juillet 2006 Statut Membre Derniè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és 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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és 467 Date d'inscription lundi 24 juin 2002 Statut Membre Derniè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és 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
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és 31 Date d'inscription dimanche 22 septembre 2002 Statut Membre Derniè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és 115 Date d'inscription jeudi 11 octobre 2001 Statut Membre Dernière intervention 15 octobre 2012
5 juin 2010 à 16:29
Si cela fonctionne si tu renseigne la propriété Tag de tes labels
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Derniè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és 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
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és 115 Date d'inscription jeudi 11 octobre 2001 Statut Membre Dernière intervention 15 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és 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
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és 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
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és 164 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 14 août 2013 3
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+
Rejoignez-nous