Hej <code> Jag skulle rekommendera att använda ovanstående lösning men i kombination med att inte hårdkoda namnet på nästa kontroll (textBox2) utan att i stället använda metoden GetNextControl() som finns på formuläret. Med den kan du få tag på nästa kontroll (eller föregående) i tabordningen och på så sätt finns det ingen risk att du hamnar på olika kontroller om du tabbar eller trycker enter. Det är annars lätt hänt att det blir osynk när man lägger till fler kontroller på formuläret eller tar bort kontroller. Tack. "Har ett svagt minne av att sett en lösning där man på en rad ger enter samma funktion som tab utan att för var textbox ange keydown event."c# hur får man cursorn att hoppa till nästa textbox när man trycker enter?
Har två textboxar, efter man skrivit in värden i den första och tryckt enter ska fokus flyttas till nästa.
Hur får man till det?
/TommySv: c# hur får man cursorn att hoppa till nästa textbox när man trycker enter?
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(e.KeyChar == (char)13)
{
e.Handled=true;
textBox2.Focus();
}
}
</code>Sv:c# hur får man cursorn att hoppa till nästa textbox när man trycker enter?
Det kan också vara idé att utnyttja forumlärets KeyPress-event (sätt KeyPreview=true på formuläret) i stället för att koppla på sig på varje kontrolls event.
[Edit:]
Jag hittade precis en metod som heter ProcessTabKey på formuläret som ser ut att göra precis det som jag beskrev ovan fast enklare. Titta på den...Sv: c# hur får man cursorn att hoppa till nästa textbox när man trycker enter?
Min lösning blev
this.txtLevNr.KeyDown += new System.Windows.Forms.KeyEventHandler(this.form1_KeyDown);
private void form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.KeyValue==13)
{
this.SelectNextControl(this.ActiveControl,true,true,true,true);
}
}
dvs på var textbox ange keydown event till form1_KeyDown.
Har ett svagt minne av att sett en lösning där man på en rad ger enter samma funktion som tab utan att för var textbox ange keydown event.
/TommySv:c# hur får man cursorn att hoppa till nästa textbox när man trycker enter?
Exakt, det var det jag beskrev :-)
Genom att sätta KeyPreview=true på formuläret så får du klickeventet centralt på formuläret först.