Textbox Eingabe blockieren

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Techno7.

    Textbox Eingabe blockieren

    Gutten Abend im Moment schreibe ich ein Programm für meine kleine Cousine, sie spillt gerne mit der Computertastatur also dachte ich so kann sie gleich die Buchstaben lernen, ich habe also eine einfache Form mit einer Textbox die zufällig einen Buchstaben ausgibt und einer textbox wo der Buchstabe eingetippt wird

    VB.NET-Quellcode

    1. If tbTippen.Text.Count > 1 Then
    2. Try tbTippen.Text = tbTippen.Text.Remove(1) Catch ex As Exception
    3. End Try
    4. Else
    5. Lesen(tbTippen.Text)
    6. End If


    (jedes mal wenn ein neuer Buchstabe vorgegeben wird oder sie einen eintippt wird er vorgelesen), jedoch weiss sie nicht wie lange man die Tasten drücken muss und somit kommt es vor dass die Form 10 mal die prozedur wiederholt da für sie die taste 10 mal gedrückt wurde, wie kann ich das nun verhindern ?

    ich habe es mit Blockinput versucht doch dafür muss das programm als admin gestartet werdewn und aus irgendeinem grund findet der computer dann die deutsche sr^timme für die ausgabe nicht

    VB.NET-Quellcode

    1. Dim Speaker As New SpeechSynthesizer()
    2. Try Speaker.SelectVoice("LH Anna") Catch ex As Exception
    3. End Try
    4. Speaker.Speak(Text)



    Vielen Dank im Vorraus bei Fragen einfach losschiessen :thumbsup:
    KeyDown
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Mit e.Handled im KeyPress-Event der Textbox kannst du die Eingabe blockieren:

    VB.NET-Quellcode

    1. Dim blockieren As Boolean
    2. Private Sub TextBox1_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    3. e.Handled = blockieren
    4. blockieren = True
    5. End Sub
    6. Private Sub TextBox1_KeyUp(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
    7. blockieren = False
    8. End Sub

    Im KeyUp-Event wird das blockier-Flag wieder zurückgesetzt, da die nächste Eingabe ja erfolgen soll.
    ach ja an readonly hatte ich noch garnicht gedacht, hatte nur versucht ein anderes steuerelemtn auf active zu setzen danke für die idee wird ausprobiert :D


    VB.NET-Quellcode

    1. Dim blockieren As Boolean Private Sub TextBox1_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    2. e.Handled = blockieren
    3. blockieren = True
    4. End Sub
    5. Private Sub TextBox1_KeyUp(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
    6. blockieren = False
    7. End Sub



    Damit geht es jetzt, hatte es zwar auch probiert doch habe gerade bemert dass ich die falsche Textbox gewählt hat somit konnte es ja nicht funktionieren :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Techno7“ ()