Entwickler-Ecke

WinForms - Textbox Problem


Delete - Do 29.09.11 09:15
Titel: Textbox Problem
Hallo Leute,

wenn ich eine Textbox ausgewählt habe und den Text darin mit der ENTER Taste bestätigen will, kommt immer ein Ton,
gibt es eine Eigenschaft beim Textbox Steuerelement die ich auf False setzen kann damit kein Ton mehr kommt wenn ich die Eingabe per Tastendruck bestätigen will ?

Liebe Grüße BleachRukia


Ralf Jansen - Do 29.09.11 11:05

Heißt bei dir bestätigen das du Code geschrieben hast der irgendwas bei ENTER macht? Also zum Beispiel in einem der Key-Events? Dann solltest du wenn du ENTER behandelt hast dort auch in den EventArgs die Handled Property setzen um anzuzeigen das ENTER schon von dir behandelt wurde.

Ansonsten wenn dich der Beep stört schalte den Warnton in der Systemverwaltung aus.


Theki - Do 29.09.11 12:07

user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Heißt bei dir bestätigen das du Code geschrieben hast der irgendwas bei ENTER macht? Also zum Beispiel in einem der Key-Events? Dann solltest du wenn du ENTER behandelt hast dort auch in den EventArgs die Handled Property setzen um anzuzeigen das ENTER schon von dir behandelt wurde.

Ansonsten wenn dich der Beep stört schalte den Warnton in der Systemverwaltung aus.


Zum Beispiel so:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
        private void textbox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                machwas();
            }
        }


Ralf Jansen - Do 29.09.11 12:49

Nicht ganz. Eher


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
private void textbox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        machwas();
        e.Handled = true;
    }
}


Wenn denn user profile iconBleachRukia das mit bestätigen meint.


Delete - Fr 30.09.11 14:36

Hallo Leute,

nein das habt ihr jetzt falsch verstanden, ich meinte wenn ich z.b. das Programm über F5 starte dann in der Form auf die Textbox klicke und z.b. Hallo eintippe und dann die ENTER Taste drücke, dann kommt immer dieser Ton oder man kann es auch vergleichen mit, wenn ich ein Programm schreiben würde, wo der Benutzer einen Suchbegriff eingeben kann und dann auf Enter drücken muss, um zu bestätigen/Suche starten.

Liebe Grüße BleachRukia


Th69 - Fr 30.09.11 14:50

Hallo BleachRukia,

eine Eigenschaft gibt es dafür leider nicht, aber du mußt einfach das KeyPress-Ereignis (NICHT das KeyDown) für alle TextBoxen abonnieren (z.B. direkt im Designer oder in einer Schleife im Code) und dann e.Handled auf 'true' setzen:

C#-Quelltext
1:
2:
3:
4:
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = true;
}


Delete - So 02.10.11 09:19

Hallo Th69,

tausend dank, funktioniert super bei der Textbox :D, nur leider nicht bei dem numericUpDown Steuerelement :(

Was muss ich machen das es auch beim numericUpDown funktioniert ?

Liebe Grüße BleachRukia


Delete - So 02.10.11 09:24

Funktioniert leider doch nicht mit der Textbox, sobald auf true gesetzt wird kann man keine Texteingabe mehr machen :(

Habe aber eine alternative Lösung im KeyDown Event gefunden :D


C#-Quelltext
1:
2:
3:
4:
            if (e.KeyCode == Keys.Enter)
            {
                e.SuppressKeyPress = true;
            }


Jetzt nur noch die Events kapseln und fertig :D

Liebe Grüße BleachRukia


jaenicke - So 02.10.11 12:04

user profile iconBleachRukia hat folgendes geschrieben Zum zitierten Posting springen:
Funktioniert leider doch nicht mit der Textbox, sobald auf true gesetzt wird kann man keine Texteingabe mehr machen :(
Du musst eben so wie du es jetzt machst abfragen, ob es die Entertaste ist. Dann funktioniert es auch. Das hatte user profile iconRalf Jansen ja auch oben schon gepostet.

Wenn du alle Tastendrücke abbrichst, ist irgendwie klar, dass nix mehr im Textfeld ankommt, oder?