Maak een klasse voor je buttons en hou een lijst bij:
Ik heb hier de Text van de button gewijzigd naar de letter, zodanig dat je geen twee reeksen buttons nodig hebt:
Visual Basic Code:
Option Explicit On
Option Strict On
Option Infer On
Public Class LetterButton
Public Sub New(letter As Char, button As Button)
Me.Letter = letter
Me.Button = button
End Sub
Public Property Letter As Char
Public Property Button As Button
Public Sub Check(letter As Char)
If letter = Me.Letter Then
'Button.Visible = False
'of volgende (dan heb je geen 2 reeksen buttons nodig)
Button.Text = Me.Letter
End If
End Sub
End Class
en je form (met test:)
Visual Basic Code:
Option Explicit On
Option Strict On
Option Infer On
Public Class FormGalgje
Private _Woord As String
Private _Buttons As New List(Of LetterButton)
Public Property Woord As String
Get
Return _Woord
End Get
Set(value As String)
_Woord = value
ClearButtons()
MaakButtons()
End Set
End Property
Private Sub ClearButtons()
For Each button In _Buttons
Controls.Remove(button.Button)
Next
_Buttons.Clear()
End Sub
Private Sub MaakButtons()
Dim index As Int32 = 0
For Each karakter As Char In Woord
Dim button = New Button
With button
.FlatStyle = FlatStyle.Flat
.Height = 40
.Width = 40
.Top = 10
.Left = 10 * index * 5
index += 1
.Text = index.ToString
End With
Controls.Add(button)
_Buttons.Add(New LetterButton(karakter, button))
Next
End Sub
Private Sub Controleer(letter As Char)
For Each button In _Buttons
button.Check(letter)
Next
End Sub
#Region "test"
Private Sub ButtonControleer_Click(sender As System.Object, e As System.EventArgs) Handles ButtonControleer.Click
Static index As Int32 = 0
Static karakters As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Controleer(karakters(index))
index += 1
If index = karakters.Length Then index = 0
End Sub
Private Sub FormGalgje_DoubleClick(sender As Object, e As System.EventArgs) Handles Me.DoubleClick
If Woord = "GALGENMAAL" Then
Woord = "FANTASTIQUE"
Else
Woord = "GALGENMAAL"
End If
End Sub
Private Sub FormGalgje_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Woord = "GALGENMAAL"
End Sub
#End Region
End Class