vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: textfeld Zahleneingabe -> 2tes Komma verhindern!? 
Autor: manyki
Datum: 15.08.04 16:22

Hallo,

hier mal eine Sub, die am besten in einem Modul untergebracht sein sollte, dann kannst Sie für alle Textboxen verwenden, die nur Zahlen zulassen sollen. Hier wird auch noch ein "-" (Minus) erlalubt (nur am Anfang). Kannst den Teil ja rausnehmen wenn ihn nicht brauchst.
'Nur Zahlen, die Backtaste, Punkt, Komma und "-"(Minus) werden
'anerkannt. Punkt und Komma nur einmal. "-" nur am Anfang.
'Hierbei wird bei eventueller Markierung der Textbox ein Komma/"-"
'zugelassen, obwohl dieses evtl. bereits vorhanden ist. Sonst wäre
'die TextBox bei Selektierung für diese Zeichen blockiert.
'Bei Eingabe eines Punkts wird dieser zum Komma gemacht.
 
Sub NurZahl(Textfeld As TextBox, KeyAscii As Integer)
With Textfeld
 Select Case KeyAscii 'Übergebener Asciicode
'----------------------------------------------------------------
  Case 8, 48 To 57 'Backtaste, Tasten 0 bis 9
   KeyAscii = KeyAscii
'----------------------------------------------------------------
  Case 45 'Taste "-"
   If .SelStart = 0 Then 'Nur wenn Cursor am Anfang steht
     If Left(.Text, 1) = "-" And .SelLength = Len(.Text) _
     Then 'Minus-Zeichen bereits da, aber Text ist markiert
      KeyAscii = KeyAscii '- zulassen
     ElseIf Left(.Text, 1) = "-" Then  'Minus-Zeichen ist bereits da
      KeyAscii = 0 '- nicht zulassen
     End If
   Else 'Wenn Cursor nicht am Anfang steht
    KeyAscii = 0 '- nicht zulassen
   End If
'-----------------------------------------------------------------
  Case 44, 46 'Tasten Komma, Punkt
   Select Case InStr(1, .Text, ",")
    Case Is > 0 'Wenn Komma bereits da ist, kann kein
                'zweites eingegeben werden(KeyAscii=0)
                'es sei denn, der Text ist selektiert.
     If .SelLength = Len(.Text) Then
      KeyAscii = KeyAscii
     Else
      KeyAscii = 0
     End If
    Case Else 'Wenn nicht wird Punkt zu Komma gemacht.
     KeyAscii = 44
   End Select
'-----------------------------------------------------------------
  Case Else  'Alle anderen Zeichen
   KeyAscii = 0 '- nicht zulassen
 End Select
End With
End Sub
Der Aufruf dann im KeyPress-Event der Textbox, die nur Zahlen zulassen soll:
Private Sub txtPreis_KeyPress(KeyAscii As Integer)
   NurZahl txtPreis, KeyAscii
End Sub

Gru? aus dem Norden
manyki

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
textfeld Zahleneingabe -> 2tes Komma verhindern!?2.039McMic15.08.04 14:32
Re: textfeld Zahleneingabe -> 2tes Komma verhindern!?1.895travis2415.08.04 15:12
Re: textfeld Zahleneingabe -> 2tes Komma verhindern!?1.966manyki15.08.04 16:22
Re: textfeld Zahleneingabe -> 2tes Komma verhindern!?1.959McMic16.08.04 08:53
Re: textfeld Zahleneingabe -> 2tes Komma verhindern!?1.905manyki16.08.04 13:02
Re: textfeld Zahleneingabe -> 2tes Komma verhindern!?1.761McMic16.08.04 17:37
Re: textfeld Zahleneingabe -> 2tes Komma verhindern!?1.844McMic17.08.04 16:09

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel