Autor Beitrag
vreden123
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 2



BeitragVerfasst: Fr 24.12.10 18:03 
Hallo,

nach dem starten von meinem Programm bekommt eine Textbox direkt den Focus.
Wie kann ich es machen das beim drücken der Eingabetaste der Focus zu einer anderen textbox geht?
xToast
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Fr 24.12.10 18:25 
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
private void textbox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == '\n' || e.KeyChar == '\r' ) //Bin mir da grad nicht sicher, aber so müsste es sein. Was besseres als KeyChar fällt mir grad nicht ein.
        textbox2.Focus();
}


So müsste es gehen, ist aber ungetestet.
vreden123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 2



BeitragVerfasst: Fr 24.12.10 18:42 
Die Funktion variable.KeyChar gibt es in C# nicht.
Die lautet dann variable.KeyPress aber das klappt leider nicht wenn ich das passend ersetze :-)
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Sa 25.12.10 10:05 
Hallo,

nehme mal lieber das "KeyDown"-Event der TextBox dafür, da Du dort in der Lage bist, den Key abzufragen und vor allen Dingen auch abzufangen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
  if (e.KeyCode == Keys.Return)
  {
    e.SuppressKeyPress = true//verhindert, dass der Key(Enter) an die TextBox weitergegeben wird
    e.Handled = true;
    textBox2.Focus();
  }
  else
    e.Handled = false;
}
Marko
vreden123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 2



BeitragVerfasst: Sa 25.12.10 13:08 
Hallo,

wenn ich aber ein Doppelklick auf die Textbox mache kommt nur:

ausblenden C#-Quelltext
1:
2:
3:
4:
private void txt_suche_TextChanged(object sender, EventArgs e)
        {

        }


und wenn ich daraus

ausblenden C#-Quelltext
1:
2:
3:
4:
private void txt_suche_KeyDown(object sender, KeyEventArgs e)
        {

        }


mache,klappt das nicht.

Er mekert das eine Using-Direktive oder Assemblyverweis fehlt.

Woran kann das liegen?

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Sa 25.12.10 13:21 
Der TextChanged-EventHandler ist der, der per Default erstellt wird, wenn man im Designer einen Doppelklick auf eine TextBox macht. Um einen Handler für ein anderes Event anzulegen, muss man dies entweder selber im Code vornehmen
ausblenden C#-Quelltext
1:
this.textBox1.KeyDown += new KeyEventHandler(this.textBox1_KeyDown);					
, oder aber Du machst das mit dem Designer. Wähle dazu mal die TextBox aus und gehe dann zu den Eigenschaften der TextBox. Oben im Eigenschaftenfenster hast Du ein kleines Icon mit einem Pfeil (Ereignisse). Klicke mal darauf, und du bekommst alle Events aufgelistet, die das Steuerelement feuert. Wenn Du nun in das Feld neben dem Event, für das Du einen Eventhandler erstellen willst, einen Doppelklick machst, so wird der Handler erzeugt und für das Event registriert. Oder wenn Du den Handler schon erstellt hast, und ihn nur noch registrieren willst, so kannst Du ihn auch in dem DropDown-Menü dort auswählen.
Marko
vreden123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 2



BeitragVerfasst: Sa 25.12.10 23:45 
Ich habe das jetzt so gemacht aber bei:

KeyEventHandler

wird immmer noch gemekert das eine Using-Direktive oder Assemblyverweis fehlt.