Crew .NET |
|
Neen, je moet geen Event maken voor elke knop. Dit Event detecteert of er op een toets is gedrukt en in dit event bepaal je wat er gebeurt afhankelijk van welke toets je hebt ingedrukt. Je moet dan een lijst met de ASCII-waardes van alle cijfers hebben en die dan gebruiken. Als je de code een beetje deftig bestudeert zie je dat je van de toets die is ingedrukt de ASCII-waarde ophaalt. Hier is een eenvoudige code om het getal in de TextBox "display" te zetten waarvan de toets is ingedrukt:
Private Sub Form2_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
'Deze if controleert of de ingetikte toets een getal is
'De ASCII-waardes 48 tot en met 57 zijn de getallen 0-9
If Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57 Then
display.Text &= e.KeyChar
End If
'Als de komma-Boolean op False staat en de ingetoetste
'daadwerkelijk een komma is, de komma toevoegen in het vak
If komma = False And Asc(e.KeyChar) = 44 Then
display.Text &= e.KeyChar
komma = True
End If
End Sub
Private Sub Form2_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress 'Deze if controleert of de ingetikte toets een getal is 'De ASCII-waardes 48 tot en met 57 zijn de getallen 0-9 If Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57 Then display.Text &= e.KeyChar End If 'Als de komma-Boolean op False staat en de ingetoetste 'daadwerkelijk een komma is, de komma toevoegen in het vak If komma = False And Asc(e.KeyChar) = 44 Then display.Text &= e.KeyChar komma = True End If End Sub
Declareer nog een Boolean, "komma" genaamd. Deze wordt op True gezet als de komma ingetikt is. Als deze al op True staat kan je geen tweede komma ingeven, wat vrij logisch is. Als je dan op de "="-toets of op een bewerkingstoets drukt zet je deze terug op False zodat je in het volgende getal weer een komma kan gebruiken.
Dus geen Event voor elke knop ofzo en je hebt geen lijst meer nodig, alleen eventueel nog voor de vier bewerkingen. Beetje duidelijk zo? |