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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| Public Class Form1
Private pMotATrouve As String = "INFORMATIQUE"
Private lblTexte As Label
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'On déclare les lettres
Dim alphabet As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
'On crée 2 rangées de 13 boutons (26 en tout) qui contiendront les lettres
Dim positionDepart As New Point(10, 100) 'Position du 1er bouton
Dim ecartEntreBoutons As Integer = 10 'Espace entre les boutons
Dim dimensionBouton As New Size(40, 40) 'Taille des boutons
Dim compteur As Integer = 0 'Compte les boutons créés
Dim positionActuelle As Point = positionDepart 'Position du bouton en cours de création (dans la boucle)
'C'est parti...
For Each lettre As Char In alphabet
'On crée
Dim bouton As New Button
'On lui affecte les propriétés
With bouton
.Text = lettre
.Size = dimensionBouton
.Location = positionActuelle
'L'évènement Click sera géré par la procédure BoutonEnfonce
AddHandler bouton.Click, AddressOf BoutonEnfonce
'On ajoute le bouton créé à la Form
Controls.Add(bouton)
End With
'Position suivante...
compteur += 1
If compteur = 13 Then
positionActuelle = positionDepart
positionActuelle.Offset(0, dimensionBouton.Height + ecartEntreBoutons)
Else
positionActuelle.Offset(dimensionBouton.Width + ecartEntreBoutons, 0)
End If
Next
'On crée le label pour la réponse
lblTexte = New Label
With lblTexte
.AutoSize = False
.Font = New Font("Courier", 18.0!, FontStyle.Bold)
.BorderStyle = BorderStyle.FixedSingle
.Size = New Size(dimensionBouton.Width * 5 + ecartEntreBoutons * 4, dimensionBouton.Height)
.Location = New Point(positionDepart.X + dimensionBouton.Width * 4 + ecartEntreBoutons * 3, positionDepart.Y - dimensionBouton.Height * 2)
.TextAlign = ContentAlignment.MiddleCenter
'On remplace le texte par un nombre de points égal au nombre de lettres du mot à trouver
.Text = "..........................................".Substring(0, pMotATrouve.Length)
End With
'On ajoute le label à la Form
Controls.Add(lblTexte)
End Sub
Private Sub BoutonEnfonce(ByVal sender As System.Object, ByVal e As System.EventArgs)
'On récupère le Sender (bouton qui a été cliqué)
Dim bouton As Button = DirectCast(sender, Button)
Dim lettreEnfoncee As String = bouton.Text
'Traitement
If pMotATrouve.Contains(lettreEnfoncee) = True Then
'La lettre est présente dans le mot
Dim nouveauTexte As String = ""
For id As Integer = 0 To pMotATrouve.Length - 1
Dim lettre As String = pMotATrouve.Substring(id, 1)
If lettre = lettreEnfoncee Then
nouveauTexte &= lettreEnfoncee
Else
nouveauTexte &= lblTexte.Text.Substring(id, 1)
End If
Next
lblTexte.Text = nouveauTexte
Else
'La lettre n'est pas présente dans le mot
Beep()
End If
'On inhibe le bouton
bouton.Enabled = False
End Sub
End Class |
Partager