Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
14 avril 2009 à 05:42
kyoyagami
Messages postés1Date d'inscriptionjeudi 23 avril 2009StatutMembreDernière intervention23 avril 2009
-
23 avril 2009 à 11:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
kyoyagami
Messages postés1Date d'inscriptionjeudi 23 avril 2009StatutMembreDernière intervention23 avril 2009 23 avril 2009 à 11:06
ùercie mon ami
cs_Appil
Messages postés208Date d'inscriptionmercredi 10 avril 2002StatutMembreDernière intervention11 juin 2014 18 avril 2009 à 14:30
Je développe un truc pareil pour mon passage à vb.net, je vais pas voir ton code pour ne pas être influencé ;-) Sinon j'ai exécuté l'exe, il marche impec :) Bravo !
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 14 avril 2009 à 11:11
Renfield : Tu as raison on peut dans ce cas passer par une étape supplémentaire :
Dim oBtn As Button = CType(sender, Button)
Dim ControlName As String = oBtn.name
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 14 avril 2009 à 10:54
Yeah Jack se mets au .Net !
Vivent les MVP :p
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 14 avril 2009 à 10:44
Dim ControlName As String = sender.name
sender est un Object, donc pas de propriété Name
prends l'habitude d'active l'Option Strict On
ca t'interdira ce genre d'hypothèses
pour les groupes, plutot que de se fier au nom, il est toujours possible de faire des tableaux ou autres collections et d'y ajouter chaque bouton
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 14 avril 2009 à 10:38
Pour raccourcir nos codes en VB6 on pouvait faire :
For i = 0 to Ubound(MonGroupe)
MonGroupe(i).Enabled = True
Next i
Voici la solution que j'ai trouvée pour le reproduire en .Net :
Nomme tes boutons MonGroupe1, MonGroupe2, ..., MonGroupe5
'En tête de module
Private MonGroupe(5) As Windows.Forms.Button
'Dans MyBase.Load
For Each oCtl As Control In Me.Controls
If oCtl.Name.StartsWith("MonGroupe") Then
Dim i As Integer = oCtl.Name.Substring(oCtl.Name.Length - 1, 1)
MonGroupe(i) = oCtl
ElseIf oCtl.Name.StartsWith("UnAutreGroupe") Then
Dim i As Integer = oCtl.Name.Substring(oCtl.Name.Length - 1, 1)
UnAutreGroupe(i) = oCtl
End If
Next oCtl
'Pour récupérer les évenements dans une même procédure :
Private Sub MonGroupe_Click_Mais_en_fait_je_la_nomme_comme_je_veux(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MonGroupe1.Click, MonGroupe2.Click, MonGroupe3.Click, MonGroupe4.Click, MonGroupe5.Click
'Récupère le nom du control
Dim ControlName As String = sender.name
'Récupère l'index du control
Dim Index As Integer = CInt(ControlName.Substring(ControlName.Length - 1, 1))
MonGroupe(Index) est ensuite disponible dans la procédure
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 14 avril 2009 à 06:05
très important, pour faire du bon .Net de désactiver les references suivantes, dans Projet > Propriétés de SMSGenerator > Références
Microsoft.VisualBasic
et
Microsoft.VisualBasic.Compatibility
ca t'invalidera quelques lignes de code.
important aussi:
Option Strict On
donc, une bonne partie de ton code n'est pas top en .Net (la partie groupe de controles)
si tu ajoutes trois boutons, et que tu souhaites centraliser le traitement:
Private Sub Button1_Click_Mais_en_fait_je_la_nomme_comme_je_veux(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
Dim oBtn As Button
oBtn = CType(sender, Button)
MessageBox.Show("Les trois boutons conduisent ici. (click efectué sur le bouton nommé '" & oBtn.Name & "'")
End Sub
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 14 avril 2009 à 05:42
Pas de gestion des groupes de controles, Jack
faut dire que c'est telle procédure qui gère le click de chacun de tes boutons
c'est bien plus souple, au final
et si tu dois jouer avec tes controles, comme un tableau, alors insères les dans un tableau^^
23 avril 2009 à 11:06
18 avril 2009 à 14:30
14 avril 2009 à 23:02
Bienvenue dans l'univers VB Net
Un site formidable : http://plasserre.developpez.com/vsommair.htm (à visiter pour se familiariser avec VB Net)
A+ et bonne prog
14 avril 2009 à 11:11
Dim oBtn As Button = CType(sender, Button)
Dim ControlName As String = oBtn.name
14 avril 2009 à 10:54
Vivent les MVP :p
14 avril 2009 à 10:44
sender est un Object, donc pas de propriété Name
prends l'habitude d'active l'Option Strict On
ca t'interdira ce genre d'hypothèses
pour les groupes, plutot que de se fier au nom, il est toujours possible de faire des tableaux ou autres collections et d'y ajouter chaque bouton
14 avril 2009 à 10:38
For i = 0 to Ubound(MonGroupe)
MonGroupe(i).Enabled = True
Next i
Voici la solution que j'ai trouvée pour le reproduire en .Net :
Nomme tes boutons MonGroupe1, MonGroupe2, ..., MonGroupe5
'En tête de module
Private MonGroupe(5) As Windows.Forms.Button
'Dans MyBase.Load
For Each oCtl As Control In Me.Controls
If oCtl.Name.StartsWith("MonGroupe") Then
Dim i As Integer = oCtl.Name.Substring(oCtl.Name.Length - 1, 1)
MonGroupe(i) = oCtl
ElseIf oCtl.Name.StartsWith("UnAutreGroupe") Then
Dim i As Integer = oCtl.Name.Substring(oCtl.Name.Length - 1, 1)
UnAutreGroupe(i) = oCtl
End If
Next oCtl
'Pour récupérer les évenements dans une même procédure :
Private Sub MonGroupe_Click_Mais_en_fait_je_la_nomme_comme_je_veux(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MonGroupe1.Click, MonGroupe2.Click, MonGroupe3.Click, MonGroupe4.Click, MonGroupe5.Click
'Récupère le nom du control
Dim ControlName As String = sender.name
'Récupère l'index du control
Dim Index As Integer = CInt(ControlName.Substring(ControlName.Length - 1, 1))
MonGroupe(Index) est ensuite disponible dans la procédure
14 avril 2009 à 06:05
Microsoft.VisualBasic
et
Microsoft.VisualBasic.Compatibility
ca t'invalidera quelques lignes de code.
important aussi:
Option Strict On
donc, une bonne partie de ton code n'est pas top en .Net (la partie groupe de controles)
si tu ajoutes trois boutons, et que tu souhaites centraliser le traitement:
Private Sub Button1_Click_Mais_en_fait_je_la_nomme_comme_je_veux(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
Dim oBtn As Button
oBtn = CType(sender, Button)
MessageBox.Show("Les trois boutons conduisent ici. (click efectué sur le bouton nommé '" & oBtn.Name & "'")
End Sub
14 avril 2009 à 05:42
faut dire que c'est telle procédure qui gère le click de chacun de tes boutons
c'est bien plus souple, au final
et si tu dois jouer avec tes controles, comme un tableau, alors insères les dans un tableau^^