Announcement

Collapse
No announcement yet.

OnKeyPress in VB.Net

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • OnKeyPress in VB.Net

    Hallo,
    ich habe Probleme mit dem Umgang von OnKeyPress. Was mache
    ich falsch ? Beim Aufruf des Formulars bzw. bei Eingabe in eine
    Textbox erhalte ich kein gewünschtes Ergebnis. Wo liegt mein
    grundsätzlicher Fehler ?

    Hier der Code:
    Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)

    MyBase.OnKeyPress(e)

    For Each locControl As Control In Me.Controls
    If TypeOf locControl Is TextBox Then
    If Text Is Nothing Then
    Select Case Asc(e.KeyChar)
    Case 8, 45, 46, 48 To 57
    Case Else
    e.Handled = True
    End Select

    Else
    Select Case Asc(e.KeyChar)
    Case 8, 46, 48 To 57
    Case Else
    e.Handled = True
    End Select
    End If

    If Me.Text.IndexOf("-") = -1 Then

    If Asc(e.KeyChar) = 45 Then
    Me.Text = Nothing
    Me.Text = "-"
    End If
    End If
    End If
    Next
    End Sub

    Bereist jetzt danke

    MFG
    Walter

  • #2
    Hallo,
    das Überschreiben der Methode <i>OnKeyPress</i> ist üblich, wenn ein eigener Nachfolger von <i>System.Windows.Forms.TextBox</i> abgeleitet und im Formular verbaut wird. Wenn im Formular eine Standard-TextBox ausgewertet werden soll, wäre das Ereignis <b>KeyPress</b> der übliche Weg. Auch dort wird <i>System.Windows.Forms.KeyPressEventArgs</i> übergeben

    Comment


    • #3
      Hallo,
      Danke zunächst für die Antwort. Die Auswertung mit dem Ereignis Keypress habe ich bereits implementiert. Da ich aber verschiedene Formulare und auf jedem Formular mindestens 10 Testboxen habe, die alle gleich formatiert werden sollen, suche ich einen anderen Weg.

      Einen Fehler habe ich erkannt:
      Der Aufruf MyBase.OnKeyPress(e) muss am Ende stehen. Dennoch
      erhalte ich keine Reaktion aus das Ereignis, aber auch keine Fehlermeldun

      Comment

      Working...
      X