Bonjour,
Envoyé par
BenVB
- Ensuite par ce que c'est utile (comment passer des infos de manière intelligentes à différents composants ??)
Tu peux parcourir la collection controls pour les boutons
1 2 3 4 5
| Private Sub btnStyle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStyle.Click
For Each btn In Me.Controls.OfType(Of Button)()
btn.FlatStyle = FlatStyle.Flat
Next
End Sub |
Tu peux (par code) placer tes boutons dans une liste (pour cibler certains) que tu parcours ensuite.
1 2 3 4 5 6 7 8 9 10 11 12 13
| Dim ListBtn As List(Of Button) = New List(Of Button)
Private Sub frmBoutons_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListBtn.Add(btnFlat)
ListBtn.Add(btnPopUp)
ListBtn.Add(btnPopUp)
End Sub
Private Sub btnStyle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStyle.Click
For Each btn In ListBtn
btn.FlatStyle = FlatStyle.Popup
Next
End Sub |
Des parcours de contrôles avec accés spécifique et parcours des conteneurs enfants (exemple non exhaustif)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Sub VideTexte(ByVal conteneur As Control)
For Each ctrl As Control In conteneur.Controls
'select sur true (condition vrai), qui sera vérifié sur chaque case si "ctrl" correspond au type de controle
Select Case True
Case (TypeOf ctrl Is Panel), (TypeOf ctrl Is GroupBox)
VideTexte(ctrl)
Case TypeOf ctrl Is TextBox
DirectCast(ctrl, TextBox).Text = ""
Case TypeOf ctrl Is ComboBox
DirectCast(ctrl, ComboBox).Text = ""
Case TypeOf ctrl Is ListBox
' replace ctrl dans son type de contrôle précis (ici ListBox) pour accéder aux méthodes spécifiques aux ListBox
DirectCast(ctrl, ListBox).ClearSelected()
End Select
Next
End Sub |
Et surement d'autres possibilités suvant les besoins.
[pour info] Après tu peux aussi utiliser un dictionaire pour les référencer de manière unique (quel que soient les noms des boutons, mais qui seront tous différents)
Dim dicoBtnInt As Dictionary(Of Integer, Button) = New Dictionary(Of Integer, Button)
Après avoir alimenté ton dico tu pourra faire dicoBtnInt(indice) mais si c'est pour reproduire du vb6 cela n'est pas conseillé il vaut mieux prendre l'habitude de .net et utiliser ces capacités.
[/pour info]
Pour résumer, les collections remplacent avantageusement les tableaux.
Consulte des tutos et MSDN pour connaître leurs fonctionalités.
[Edit]
Cours
Il y a aussi LINQ qui peut être utilisé voir Exemple sur autre sujet qui permet de cibler sur des caractèristiques.
[/Edit]
Partager