textBox - Element erzeugt bei Eingabe von "ENTER" ungewollt einen "BEEP"
-
Hallo ...
Mein Problem besteht darin, dass ich ein Formular erstellt habe, auf dem sich eine Adressleiste (TextBox) befindet. Hier soll dann die gewünschte URL eingegeben werden.
Allerdings erzeugt diese (und auch eine testweise erprobte maskedTextBox) bei abschliessender Eingabe mit "ENTER" grundsätzlich einen Beep - welchen ich hier aber nicht gebrauchen kann.
Habt ihr vielleicht eine Idee dazu?
-
Normalerweise hat {ENTER} bei Textboxen keine Wirkung...
Das Beep kommt vllt daher, weil es eben keine Wirkung hat...
Wenn du willst, dass du mit Enter bestätigen kannst, gibt es 2 Möglichkeiten (bestimmt noch mehr, aber ich weiß gerade nur 2):1. Es gibt da ne Eigenschaft...ich denke ja mal, das du auch Visual Studio benutzt...irgendwas mit AcceptButton oder so^^
2. GetAsyncKeyState. Musst einfach Windows.h includen, und dich vllt mit der funktion fvertraut machen....
Mfg
-
... so weit bin ich schon. Ich habe bereits ein Key_Down Event erzeugt welches so aussieht:
if(GetAsyncKeyState(VK_RETURN))//Wurde Enter gedrückt? { ladewebseite( this->textBox2->Text ); }
Nur wird hierdurch der Ton ja nicht früh genug unterdrückt.
Und die Funktion Accept Button scheint es nicht zu geben, leider auch nichts vergleichbares.
-
Nur so aus Neugier, was passiert wenn du
textbox0->AcceptsReturn = true
oderfalse
setzt?
-
Warum benutzt Du WinAPI (GetAsync...) wenn Du in den EventArgs das schon bekommst?
Simon
-
Rhombicosidodecahedron schrieb:
Nur so aus Neugier, was passiert wenn du
textbox0->AcceptsReturn = true
oderfalse
setzt?Nichts wirklich neues.
Und zu dir Simon ... doppelt gemoppelt?
-
Und zu dir Simon ... doppelt gemoppelt?
Was meinst Du damit?
-
theta schrieb:
Und zu dir Simon ... doppelt gemoppelt?
Was meinst Du damit?
Sorry ... meine dich, nicht Simon
Verstehe deine Aussage nicht ganz ...
Das KeyDown Event wird doch bei jeder Eingabe aufgerufen - oder etwa nicht?
Also muss ich doch im Event auf ENTER überprüfen ?!
-
Ja, schon jedesmal prüfen, nur wie ist die Frage:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown.aspx
Schau Dir mal das Bsp. an. Die Event Argumente liefern Dir alles was Du brauchst.
Simon
-
Form Eingenschaften->AcceptButton
Oder ist das nicht das, was du suchst ?
-
Danke dir ... muss blind gewesen sein.
-
np, ist das Beep denn jetzt weg ?
-
theta schrieb:
Ja, schon jedesmal prüfen, nur wie ist die Frage:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown.aspx
Schau Dir mal das Bsp. an. Die Event Argumente liefern Dir alles was Du brauchst.
SimonDu hattest natürlich Recht. Jetzt verstehe ich was du meintest. Aller Anfang ist schwer.
Die Idee mit dem Accept Button war im Prinzip ganz gut und der Beep natürlich weg. Nur habe ich jetzt das Problem, dass bei Eingaben in einer anderen TextBox das abschliessende Return natürlich falsch gedeutet wird.
-
Wieso willst du jedes Mal wenn du was in die TB einträgst {ENTER}n ?
-
C++Lerner schrieb:
Wieso willst du jedes Mal wenn du was in die TB einträgst {ENTER}n ?
Also .. ich habe ja wie gesagt eine TextBox als AddressLeiste (textBox1, sowie eine weitere TextBox als Eingabe - für Links (textBox2).
AcceptButton der Form steht auf button1_click (Webseite laden).
Wenn ich nun irgendwann ein Lesezeichen setzen will, nehme ich dazu die zweite TextBox zum eingeben des Namens. Und hier hängt es. Will ich die Eingabe mit Return abschliessen - wird lediglich die aktuelle Seite neu geladen.
-
Hm...dann würde ich doch auf GetAsynckeyState setzen^^
Könntest das dann ja so machen:
Wenn tb2 fokussiert ist, und dann Enter gedrückt wird, passiert dies und das...
Verständlich ???
-
Das funktioniert so. Danke.