Feedback

VB - Textbox-Extension nur numerische Werte zulassen mit Ein-/Aus

Veröffentlicht von am 29.08.2008
(1 Bewertungen)
Textbox numerische Werte zulassen mit einem Ein-/Ausschalter als Extension
GFU-Schulungen  [Anzeige]

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

        ''' <summary>
        ''' Nur Eingabe von Zahlen zulassen {0-9/,/-}
        ''' </summary>
        ''' <param name="T">Typ TextBox</param>
        ''' <param name="allow">Ein-/Ausschalten numerische Eingabe</param>
        ''' <remarks></remarks>
        <Extension()> _
       Public Sub AllowNumeric(ByVal T As TextBox, ByVal allow As Boolean)
            If T IsNot Nothing Then
                If allow Then
                    AddHandler T.KeyPress, AddressOf DoubleKeyPresser
                Else
                    RemoveHandler T.KeyPress, AddressOf DoubleKeyPresser
                End If
            End If
        End Sub


        Private Sub DoubleKeyPresser(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
            Select Case e.KeyChar
                Case ControlChars.Tab, ControlChars.Back : Exit Sub
                Case ControlChars.Cr : e.Handled = True : SendKeys.Send("{TAB}") : Exit Sub
                Case "0"c To "9"c : Exit Sub
                Case "-"c
                    If _CountStrings(CType(sender, TextBox).Text, CChar("-")) = 0 Then Exit Sub
                Case ","c       ' nur maximal 1 Komma zulassen
                    If _CountStrings(CType(sender, TextBox).Text, CChar(",")) = 0 Then Exit Sub
                Case "."c
                    If _CountStrings(CType(sender, TextBox).Text, CChar(",")) = 0 Then e.KeyChar = ","c : Exit Sub
            End Select

            e.Handled = True
        End Sub

        Private Function _CountStrings(ByVal str As String, ByVal regexStr As Char) As Integer
            Dim regex As New RegularExpressions.Regex(regexStr)
            Return regex.Matches(str).Count
        End Function
Abgelegt unter Textbox, Extentsion.

1 Kommentare zum Snippet

lotbec schrieb am 18.07.2009:
Die Idee ist gut, allerdings kann man das Minuszeichen auch inmitten der Zahl machen :-)
 

Logge dich ein, um hier zu kommentieren!