| |
VB.NET - Ein- und UmsteigerBeep bei MsgBox-Aufruf | | | Autor: JAG | Datum: 30.08.14 13:34 |
| Hallo zusammen,
habe ein kleines Problem mit dem Beep-Ton beim Aufruf einer MsgBox mittels Tastenabfrage aus einer
TextBox heraus.
Ich habe zum Testen mal folgendes erstellt:
Als Erstes ein Form mit 3 TextBoxen erstellt und dort folgenden VB-Code eingegeben:
Public Class Form1
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As _
KeyEventArgs) Handles TextBox1.KeyDown
If Not e.Control And e.Alt Then ' <<< Alt-Taste gedrückt
MsgBox("Aufruf MsgBox mit OK-Button, ohne Icon und ohne Sound")
Else
e.SuppressKeyPress = True ' <<< Weiterleitung anderer Eingaben an
' TextBox unterbinden
End If
End Sub
Private Sub TextBox2_KeyDown(ByVal sender As System.Object, e As _
KeyEventArgs) Handles TextBox2.KeyDown
If Not e.Control And e.Alt And e.KeyCode = Keys.K Then ' <<< Alt-Taste
' und K-Taste gedrückt
MsgBox("Aufruf MsgBox mit OK-Button, ohne Icon und ohne Sound")
Else
e.SuppressKeyPress = True ' <<< Weiterleitung anderer Eingaben an
' TextBox unterbinden
End If
End Sub
Private Sub TextBox3_KeyDown(ByVal sender As System.Object, e As _
KeyEventArgs) Handles TextBox3.KeyDown
If e.Control And e.Alt And e.KeyCode = Keys.K Then ' <<< AltGr-Taste
' und K-Taste gedrückt
MsgBox("Aufruf MsgBox mit OK-Button, ohne Icon und ohne Sound")
Else
e.SuppressKeyPress = True ' <<< Weiterleitung anderer Eingaben an
' TextBox unterbinden
End If
End Sub
End Class Bei Aufruf der MsgBox aus TextBox1 und TextBox3 klappt das Bestens und es ist kein Beep-Ton zu hören.
Bei Aufruf der MsgBox aus TextBox2 ertönt jedoch ein Beep-Ton.
Ich kann mir nicht erklären wieso und habe auch nichts Erklärendes dazu gefunden, warum dieser Ton hier ertönt und bei den andern beiden nicht.
Wie kann ich diesen Beep-Ton abschalten bzw. unterdrücken ohne den Ton über die Systemsteuerung von Windows kompl. abzuschalten.
Vielleicht weiß einer von Euch was und kann mir dazu etwas sagen.
Gruß JAG | |
Re: Beep bei MsgBox-Aufruf | | | Autor: JAG | Datum: 30.08.14 14:31 |
| Hallo Manfred,
diesen Tipp kenn ich, aber über das KeyPress-Event lassen sich nicht alle Tasten abfragen, wie z.B. die Alt-Taste, oder liege ich hier falsch ?
Also nimmt man hierfür dann das KeyDown-Event.
Wieso bei Dir unter allen Bedingungen ein Sound (Beep) zu hören ist, kann ich nicht nachvollziehen.
JAG | |
Re: Beep bei MsgBox-Aufruf | | | Autor: GPM | Datum: 30.08.14 15:50 |
| Die MsgBox bei TextBox2 ist es nicht.
Der Sound kommt auch ohne MsgBox bei einer
Alt+Taste-Kombination. Teste es mal.
MfG GPM 0 | |
Re: Beep bei MsgBox-Aufruf | | | Autor: JAG | Datum: 30.08.14 16:33 |
| Hallo GPM,
da hast Du zwar Recht, aber das beseitigt nicht das Problem, dass bei der Alt+Taste-Kombi ein Beep
kommt, den ich gerne unterdrücken möchte, ohne auf radikale Metoden (Systemsteuerung von Windows)
zurückgreifen zu müssen.
Solange keine Lösung in Sicht, werde ich für den Zweck wo ich es nutzen möchte die Kombination
AltGr + Taste nutzen, da hier kein Beep erfolgt.
Vielleicht hat aber doch noch jemand eine Lösung parat.
Die Hoffnung stirbt ja bekanntlich zuletzt.
Gruß JAG | |
Re: Beep bei MsgBox-Aufruf | | | Autor: GPM | Datum: 30.08.14 17:50 |
| Man kann den Sound zur Not auch per SendMessage-Befehl aus und einschalten.
MfG GPM 0 | |
Re: Beep bei MsgBox-Aufruf | | | Autor: Kuno60 | Datum: 30.08.14 22:22 |
| Im Gegensatz zu WinXP, erzeugt die MsgBox bei Win7 keinen Sound, wenn sie kein Ikon zeigt.
Der Sound bei Textbox2 kommt von der Textbox selbst, da Alt+K als fehlerhafte Eingabe gewertet wird.
Der Sound kann mit "e.SuppressKeyPress = True" unterdrückt werden, allerdings blockiert hierbei die MsgBox die Rückgabe an die Textbox und es ist trotzdem ein Sound zu hören.
Ist nur seltsam, dass bei Textbox 1 und 3 kein Sound zu hören ist.
Abhilfe:
Setze im KeyDown-Ereignis "e.SuppressKeyPress = True" und öffne die MsgBox im KeyUp-Ereignis, dann ist kein Sound zu hören.
| |
Re: Beep bei MsgBox-Aufruf | | | Autor: JAG | Datum: 31.08.14 16:27 |
| Hallo Kuno60,
hatte das mit dem KeyUp-Ereignis auch schon mal angedacht aber nicht ausgeführt, weil man sich ja
selbst immer sagt, es soll etwas ausgeführt werden wenn ich die Tastenkombi drücke.
Habe jetzt mal den Aufruf der MsgBox im KeyUp-Ereignis gelegt.
Das sieht zwar etwas blöd aus (für eine Tastenkombi-Abfrage erst ein KeyDown und dann ein KeyUp),
aber es geht.
Wenn man es nicht weiß, merkt man es beim Bedienen garnicht, da man die Tasten nach dem Betätigen,
ja sofort wieder loslässt.
Gruß JAG | |
Re: Beep bei MsgBox-Aufruf | | | Autor: DerAndi | Datum: 31.08.14 17:34 |
| Hallo
Noch eine Anmerkung zu deinem Punkt, das man beim KeyPress Ereignis nicht ermitteln kann, ob die ALT oder Control Taste gedrückt wurde.
Du kannst bei deiner Abfrage auch diese Werte über My.Computer.Keyboard abfragen (bsp. ob die Control, die Shift oder auch die ALT Taste gedrückt wurde).
Gruß
Andi | |
Re: Beep bei MsgBox-Aufruf | | | Autor: JAG | Datum: 01.09.14 13:31 |
| Hallo Andi,
habe im KeyPress-Ereignis mal deinen Vorschlag eingesetzt und hier über My.Computer.Keyboard.AltKeyDown
versucht die Alt-Taste wie folgt abzufragen:
Private Sub TextBox2_KeyPress(ByVal sender As System.Object, e As _
System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If My.Computer.Keyboard.AltKeyDown Then
MsgBox("Aufruf MsgBox mit OK-Button, ohne Icon und ohne Sound")
Else
e.Handled = True
End If
End Sub Geht nicht! AltKeyDown wird hier nicht abgefragt!
Hallo effeff,
habe auch Deinen Vorschlag ausprobiert, indem ich anstatt der MsgBox, eine auf Basis eines Formulars
erstellte eigene Box genommen habe.
Geht auch nicht! Der Beep kommt nach wie vor!
Es wird schon so sein, wie von Kuno beschrieben, dass das an der TextBox und nicht an der MsgBox liegt.
Gruß JAG | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|