2017-02-05 6 views
0

Ich habe ein Formular mit einem Textfeld, beim Drücken von Enter ein anderes Formular2 geöffnet ist. Wie kann ich Ton unterdrücken, wenn Form2 geöffnet ist?So unterdrücken Sie Sound beim Öffnen eines Dialogfeldes in vb.net

Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown 
    If e.KeyCode = Keys.Enter Then 
     e.Handled = True 
     e.SuppressKeyPress = True 
     My.Forms.Form2.ShowDialog() 
    End If 
End Sub 
+0

Ton geschieht, wenn Sie eine Taste drücken oder wenn das Formular geöffnet wird? – Codexer

+0

Setzen Sie stattdessen ProcessCmdKey außer Kraft und drücken Sie die Eingabetaste, um dort zu drücken. Ich denke, das wird funktionieren. Du solltest das wirklich nicht tun. Geben Sie in eine TextBox ein, erstellen Sie entweder eine neue Zeile oder ist ungültig. Es sollte nicht magisch eine neue Form öffnen. –

Antwort

-1

Sie können dies tun, indem Sie den Code leicht zu ändern und in das KeyPress Ereignis statt KeyDown- bewegen

Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyKeyPress 
    If e.KeyChar = ChrW(Keys.Enter) Then 
     e.Handled = True 
     My.Forms.Form2.ShowDialog() 
    End If 
End Sub 
+0

Und wie ist das anders als OP-Code? Der einzige Unterschied ist, dass Sie 'SuppressKeyPress' und einen anderen Handler weggelassen haben, können Sie das OP-Problem replizieren und auch überprüfen, ob Ihre vorgeschlagene Lösung funktioniert? – Codexer

+0

@Zaggler. Eigentlich ist es anders. Es ist in der Keypress-Veranstaltung, die aus irgendeinem Grund nicht den ding-Sound verursacht. Der OP-Code befand sich im KeyDown-Ereignis und verursachte beim Ausführen des Showdialogs einen Code. Es löst auch die Frage des OP basierend auf seinem Code. –

Verwandte Themen