Rubrik: Controls · ComboBox | VB-Versionen: VB4, VB5, VB6 | 08.12.05 |
ComboBox - nur Zahlen zulassen Man ärgert sich doch immer über die Benutzer, die einfach etwas in eine ComboBox eintragen, was da nicht rein gehört?!? Hier die Lösung! | ||
Autor: Dennis Hemken | Bewertung: | Views: 18.771 |
gadgets.hemken.org | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Haben Sie sich nicht auch schon mal über die Benutzer geärgert, die einfach etwas in eine ComboBox eintragen, was da nicht rein gehört?!?
Das beste Beispiel ist, wenn man mit einer ComboBox variable Prozentwerte, also Zahlen, an eine Datenbank übergeben möchte. Klaro, stehen dort Standardwerte drin, aber der Benutzer möchte immer andere Werte, als die Standardwerte nehmen, also tippt er von Hand einfach mal eine andere Zahl ein und Schwupps, ist das zufällig ein Buchstabe, oder ein Sonderzeichen mit drin.
Wie Sie das Ganze leicht abfangen können, zeige ich Ihnen hier:
Private Sub Combo1_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case vbKey0 To vbKey9, vbKeyBack ' Alle Zahlen, sowie die Löschen-Taste werden durchgelassen Case 44 ' 44 = Komma: jedoch nur 1x zulassen If InStr(Combo1.Text, Chr$(KeyAscii)) > 0 Then KeyAscii = 0 Case Else ' der Rest wird geblockt KeyAscii = 0 End Select End Sub
Beispielcode:
Einfach eine neue Form erstellen (Form1), mit einer ComboBox (Combo1) und obigen Code einfügen.
Und siehe da, der Benutzer kann nur noch Zahlen und Komma eingeben.
Private Sub Form_Load() Dim n As Long ' die ComboBox wird mit Werten gefüllt For n = 5 To 100 Step 10 Combo1.AddItem n Next ' der erste Wert wird selektiert Combo1.ListIndex = 0 End Sub