Tastenkombination Abfragen

Danielku15

Erfahrenes Mitglied
Hallo Leute.

Ich versuche gerade Folgendes:
Ich habe eine TextBox. Bei einem normalen Enter wird ein Zeilenumbruch erzeugt. Ebenfalls habe ich einen Button der eine bestimmte Funktion auslöst. Nun möchte ich bei der Tastenkombination STRG+Enter diese Funktion auslösen. Nur irgendwie Funktioniert dies nicht so ganz. Ich dachte mir zuerst einfach ich frage mit einem KeyDown Event ab welche Tasten gedrückt wurden. Nur irgendwas stimmt bei der Logik nicht. Ich frage einfach ab ob die STRG Taste gedrückt wird, die Entertaste gedrückt wird und ob das Textfeld nicht leer ist. Nur irgendwie wird bei der Tastenkombination nur ein Zeilenumbruch erzeugt.

C#:
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if ((e.Control) && (e.KeyData == Keys.Enter) && (this.textBox1.Text != ""))
            {
                this.Submit();
            }
        }

Ich hoffe ihr könnt mir helfen.

gruß Daniel
 
Du müsst nur noch e.Handled auf true setzen,
damit kein Zeilenumbruch erzeugt wird. ;)

Btw. string.Empty steht für einen leeren String.
 
Zuletzt bearbeitet:
Nein. Funktioniert nicht. Aber ich habe den Fehler gefunden warum die Funktion nicht aufgerufen wird. Ich muss e.KeyCode anstatt e.KeyData verwenden. Ansonsten reagiert er nicht auf die Abfrage. Irgendwie findet er die Methode empty beim Text im Textfeld nicht. Also neuer Code:

C#:
			if ((e.Control) && (e.KeyCode == Keys.Enter) && (this.textBox1.Text != ""))
			{
				this.Submit();
				e.Handled = true;
			}

Stimmt so oder :D

gruß daniel
 
Hi,

danielku hat gesagt.:
Irgendwie findet er die Methode empty beim Text im Textfeld nicht.

Empty ist auch keine Methode sondern ein Static Field der Klasse System.String.
Dein Ausdruck müsste dann in etwa so aussehen:
C#:
if ([...] && textBox.Text == String.Empty)
{
   [..]
}
 
Aso, so geht das :) und wieder was gelernt. Von PHP bin ich gewohnt empty als Funktion zu verwenden [ empty($blubb)
 

Neue Beiträge

Zurück