Entwickler-Ecke

WinForms - String aus einer TextBox einer ListBox hinzufügen


stugi82 - So 06.07.08 11:45
Titel: String aus einer TextBox einer ListBox hinzufügen
Hallo,

ich habe in meinem Form eine TextBox, eineListbox und einen Hinzufügen-Button, mit dem ich die Elemente, die ich in die TextBox eingegeben habe der ListBox hinzufügen kann. Ich möchte nun erreichen, dass dies auch geschieht, wenn ich nach dem Eingeben eines Strings in die TextBox die Return-Taste betätige. Dazu enthält mein Form folgenden Code. Das Problem ist, dass beim Betätigen der Return-Taste der String aus der TextBox der ListBox nicht nur einmal hinzugefügt wird, sondern je nach dem wie lange ich die Return-Taste gedrückt halte, auch mehr mals. Wie kann ich das unterbinden?


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
        private void textBox_TextChanged(object sender, EventArgs e)
        {
            this.textBox.KeyDown += new KeyEventHandler(this.onEnterPressed);
        }

        private void onEnterPressed(object sender, KeyEventArgs e)
        {
            if (e.KeyData == Keys.Return)
            {
                addButton.PerformClick();
                e.Handled = true;
            }
        }

        private void addButton_Click(object sender, EventArgs e)
        {
            listBoxForFunctionNames.Items.Add(textBox.Text);
        }


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - So 06.07.08 11:54

Ich würde die TextBox nach dem Hinzufügen leeren und vorm Hinzufügen prüfen, ob ein leerer String hinzugefügt wird.

Wieso weist Du das onEnterPresser-Ereignis bei jeder Änderung des Textes neu zu? Wieso richtet Du es nicht einfach einmalig im Formdesigner ein?


stugi82 - So 06.07.08 19:47

Ja, das ist natürlich eine Möglichkeit. Danke! Dachte vielleicht gibt es auch eine "entprellte" Variante eines Key-Events.

Das onEnterPresser-Ereignis gehört da natürlich nicht hin. Das war nur zu Testen.