Systemsound bei selektierter TextBox und druck auf Enter Taste abschalten

  • VB.NET
  • .NET 4.5

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von DerSmurf.

    Systemsound bei selektierter TextBox und druck auf Enter Taste abschalten

    Holla
    Wenn ich auf einer Form eine beliebige Textbox ausgewählt habe und Enter drücke ertönt ein Systemsound.
    Dabei ist es egal, ob dabei Code ausgeführt wird oder nicht.
    Also ich habe folgenden Code im Key.Press Event:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub frmNewIncome_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
    2. Select Case e.KeyData
    3. Case = Keys.Enter
    4. ProccessEnterKey()
    5. 'e.handled = True bringt auch nix
    6. Case = Keys.Escape
    7. Me.Close()
    8. End Select
    9. End Sub

    VB.NET-Quellcode

    1. Private Sub ProccessEnterKey()
    2. CurrentTextBoxIndex += 1
    3. If TBList.Count > CurrentTextBoxIndex Then
    4. TBList(CurrentTextBoxIndex).Select()
    5. Else
    6. 'wenn TBListCount = TBIndex, dann letzte Box + Enter = speichern markieren
    7. If TBList.Count = CurrentTextBoxIndex Then
    8. BTNSave.Select()
    9. Else
    10. 'sonst (TBList.Count < TBIndex) speichern Code ausführen
    11. SaveIncome()
    12. End If
    13. End If
    14. End Sub


    Aber auch wenn ich das Keydown Event auskommentiere, ertönt der Ton.

    Kann ich das verhindern? Also in Visual Studio nicht in den Windows Settings.
    Workaround: Setz für das Form bei den Properties einer der vorhandenen Buttons als AcceptButton. Nachteil: Der EventHandler hinter jenem Button wird aufgerufen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    ah ok.
    Dann kann ich ja aufhören hier rumzuprobieren.
    Ja gut, dann mache ich einen unsichtbaren Button, ohne Code dahinter, dann ist ja der Nachteil nur noch, dass das ganze vlt. ein bisschen unsauber ist.
    Aber ist ja dann nicht meine Schuld :o)

    @oobdoo

    DerSmurf schrieb:

    Kann ich das verhindern? Also in Visual Studio nicht in den Windows Settings.

    DerSmurf schrieb:

    Also in Visual Studio nicht in den Windows Settings.
    Wenn das ne System-Einstellung ist, wäre es suboptimal, wenn Du sie in Deinem Programm änderst.
    Wenn das Programm vor der Restauration des Ausgangszustandes abschmiert (und damit musst Du rechnen!), ist die "normale" Einstellung weg.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @VB1963
    Das ist gut. Es reicht sogar diesen Code ins KeyDown der Form zu schmeißen, ich brauche nicht für jede TB ein eigenes KeyDown erzeugen.

    VB.NET-Quellcode

    1. Private Sub frmNewIncome_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
    2. Select Case e.KeyData
    3. Case = Keys.Enter
    4. ProccessEnterKey()
    5. e.SuppressKeyPress = True
    6. Case = Keys.Escape
    7. Me.Close()
    8. End Select
    9. End Sub

    und der Sound ist weg.

    @RodFromGermany Ich möchte keine Settings von Windows ändern.
    Sondern mein Programm (MEIN PROGRAMM) soll den Ton nicht auslösen.