KeyPress Event

LordDeath

Erfahrenes Mitglied
Mahlzeit

Ich habe eine ComboBox und wenn der Anwender was in das feld eingibt und Enter oder Return drückt soll eine Methode ausgeführt werden.
Nur ich krieg das nicht hin hab schon dei M$ gesucht aber auch da nix passendes gefunden.

Mittlerweile schaut das ganze so aus

// Code
Code:
private void R_Name_SelectedIndexChanged(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
	if (e.KeyChar.ToString() == Keys.Enter.ToString())
	{
		MessageBox.Show("Geht");
	}
	if (e.KeyChar.ToString() == Keys.Return.ToString())
	{
		MessageBox.Show("Geht auch");
	}
}
// Endcode

R_Name ist der name der Combobox

Kann mir da jemand helfen?

DarkGreetinx LordDeath

Edit von Alex: Benutz Code-Tags!
 
Zuletzt bearbeitet von einem Moderator:
Gibt es einen Unterschied zwischen Enter und Return? Glaube nicht!

Hier ist die Lösung:
Code:
if (e.KeyChar == (char)13)
{
    MessageBox.Show("Geht auch");
}

Damit kannst Du die Enter wie auch Return-Taste abfangen!
 
Aber wohl nicht bei C#.NET

Wenn Du Dir mal folgende Zeile in den Code einbaust:
Code:
string keychar = e.KeyChar.ToString();
Dann wirst Du beim Debuggen feststellen, dass immer "\r" als KeyChar als Parameter ankommt.

Eine weitere Zeile
Code:
string key     = Keys.Enter.ToString();
Zeigt auch, warum der obige Code nicht funktioniert! Hier wird bei ToString "Enter" erzeugt! Deshalb funktioniert ja der Vergleich auch nicht ! "\r" != "Enter"

Und wenn man sich Keys.Return als String ausgeben lässt, so stellt man fest, dass auch dann wieder "Enter" als String geliefert wird. Also macht .NET keinen Unterschied zwischen "Enter" und "Return".
 
Macht ja nichts! Ich war mir da ja auch nicht so sicher! Deshalb musste ich auch erst ein wenig "nachforschen"! :(
 
Aua., Geht doch schöner.

Code:
if (e.KeyCode == Keys.Enter)
{
    //...
}

Ich frag mich grad, warum ich nicht nach dem Editieren geantwortet hab. *grübel*

MfG,
Alex
 
Hallo,
habe zu dem Bsp. mal eine frage

private void R_Name_SelectedIndexChanged(object sender,System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar.ToString() == Keys.Enter.ToString())
{
MessageBox.Show("Geht");
}
if (e.KeyChar.ToString() == Keys.Return.ToString())
{
MessageBox.Show("Geht auch");
}
}


und zwar wenn ich einen Doppelklick auf meine combobox mache dann habe standart gemäß das hier stehen:

private void cbBentuzerAuswahl_SelectedIndexChanged(object sender, System.EventArgs e)
{
}

wenn ich das Beispiel in den Code eintrage bekomme ich einen fehler, problem mit
System.Windows.Forms.KeyPressEventArgs e. Woran liegt es?
Achso bin totaler anfänger.
 
Zurück