Fehlermeldung bzgl. Asc(e.KeyChar)

  • VB.NET

    Fehlermeldung bzgl. Asc(e.KeyChar)

    Hallo liebe Boardmember,

    hoffe ihr hattet einen schönen Sonntag :) Es geht um folgendes ich habe 4 Textfelder, in denen die Eingabe von Buchstaben verboten ist! Das habe ich wie folgt gelöst (Bsp. für txtStk):

    VB.NET-Quellcode

    1. Private Sub txtStk_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtStk.KeyPress
    2. Select Case Asc(e.KeyChar)
    3. Case 48 To 57, 8, 44
    4. Case Else
    5. e.Handled = True
    6. End Select
    7. End Sub


    Nun werden es noch einige mehr Textfelder werden! Wie kann ich das ganze zusammenfassen und global für die betroffenen Textfelder ansprechen?

    Ich habe folgendes probiert:

    VB.NET-Quellcode

    1. Sub verbot()
    2. Select Case Asc(e.KeyChar)
    3. Case 48 To 57, 8, 44
    4. Case Else
    5. e.Handled = True
    6. End Select
    7. End Sub

    Weil ich verbot() dann anschliessend einfügen wollte. Das ganze brachte nur ne Fehlermeldung : Fehler 1 "e" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden.

    Kann mir vielleicht irgendjemand helfen und mir erklären was ich falsch gemacht habe!

    Beste Grüße vom Kackstein :thumbsup: :thumbup:
    Einfach bei der Handles-Klausel mehrere Ereignisse angeben.

    Viele Grüße, Phil.
    Projekte: Modding von CoD WaW Zombies

    OPTION STRICT ON!
    Real .NET programmers don't use My.
    Du könntest auch eine neue Klasse erstellen, die von der TextBox-Klasse erbt. In dieser nimmst Du dann alle gewünschte Einstellungen vor. So hast Du einen TextBox mit allen deiner Standard-Einstellungen und Methoden. Beispiel:

    VB.NET-Quellcode

    1. Public Class MyTextBox
    2. Inherits Windows.Forms.TextBox
    3. Private _NurZahlenErlaubt As Boolean = True
    4. Public Property NurZahlenErlaubt() As Boolean
    5. Get
    6. Return _NurZahlenErlaubt
    7. End Get
    8. Set(ByVal value As Boolean)
    9. _NurZahlenErlaubt = value
    10. If _NurZahlenErlaubt AndAlso Me.Text.Trim <> String.Empty Then
    11. Me.Text = String.Empty
    12. End If
    13. End Set
    14. End Property
    15. Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
    16. MyBase.OnKeyPress(e)
    17. If _NurZahlenErlaubt Then
    18. Select Case Convert.ToInt32(e.KeyChar)
    19. Case 48 To 57, 8, 44
    20. Case Else
    21. e.Handled = True
    22. End Select
    23. End If
    24. End Sub
    25. End Class