1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| Private Sub frmManipMesBouton_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CreMesButton(True)
CreMesButton(False)
CreMesButtontp(0)
CreMesButtontp(1)
End Sub
Private Sub btnMetANiveau_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMetANiveau.Click
EnvoieEventNiveau(Me, Integer.Parse(txtNiveau.Text))
'AfficheNiveau(Me, Integer.Parse(txtNiveau.Text))
End Sub
Sub CreMesButton(ByVal pan As Boolean)
For i As Integer = 0 To XMax
For j As Integer = 0 To YMax
Btn(i, j) = New MonButton()
If pan Then Btn(i, j).Parent = Panel1 Else Btn(i, j).Parent = GroupBox1
Btn(i, j).Name = "Button" & i & j
Btn(i, j).Text = "Button" & i & j
Btn(i, j).Top = (i) * 25
Btn(i, j).Left = 20 + (j * 75)
Btn(i, j).Tag = i & "|" & j
DirectCast(Btn(i, j), MonButton).NiveauBouton = Integer.Parse(i.ToString & j.ToString)
If pan Then Panel1.Controls.Add(Btn(i, j)) Else GroupBox1.Controls.Add(Btn(i, j))
Next
Next i
End Sub
Sub CreMesButtontp(ByVal page As Integer)
For i As Integer = 0 To XMax
For j As Integer = 0 To YMax
Btn(i, j) = New MonButton()
Btn(i, j).Parent = TabControl1.TabPages(page)
Btn(i, j).Name = "Button" & i & j
Btn(i, j).Text = "Button" & i & j
Btn(i, j).Top = (i) * 25
Btn(i, j).Left = 20 + (j * 75)
Btn(i, j).Tag = i & "|" & j
DirectCast(Btn(i, j), MonButton).NiveauBouton = Integer.Parse(i.ToString & j.ToString)
TabControl1.TabPages(page).Controls.Add(Btn(i, j))
Next
Next i
End Sub
' toujours présent pour info : autre méthode sans event par parcours récursif des contrôles
Sub AfficheNiveau(ByVal ctrl As Control, ByVal niveau As Integer)
For Each c As Control In ctrl.Controls
Select Case True
Case TypeOf c Is MonButton
c.Visible = (DirectCast(c, MonButton).NiveauBouton < niveau)
Case TypeOf c Is Panel
AfficheNiveau(c, niveau)
Case TypeOf c Is GroupBox
AfficheNiveau(c, niveau)
Case TypeOf c Is TabControl
For Each tp As TabPage In DirectCast(c, TabControl).TabPages
AfficheNiveau(tp, niveau)
Next
End Select
Next
End Sub
End Class |
Partager