2010-09-02 8 views
1

J'ai quelques zones de texte. Je voudrais pointer l'utilisateur chaque fois vers la zone de texte suivante, en appuyant sur Entrée. Les zones de texte ont été correctement configurées avec Tabindex.C# tabindex - généraliser (application de bureau)

J'ai quelque chose comme:

private void textBox_Description_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (e.KeyChar == (char)Keys.Enter) 
     { 
      e.Handled = true; 
      setFocusOnNextElement(sender); 
     } 
    } 

Comment devrait setFocusOnNextElement ressembler? Si je veux le rendre général. Je pourrais analyser chaque contrôle, et trouver ce qui est à venir, mais j'ai le sentiment que cela peut être fait plus agréable.

Répondre

5

Je ne conseillerais pas de construire la fonction comme vous l'avez, car il faudrait que le paramètre soit object.

private static void SetFocusOnNextElement(Control control) 
{ 
    Control target = Control.GetNextControl(control, true); 

    if (target != null) target.Focus(); 
} 

Puis l'invoquer comme ceci:

SetFocusOnNextElement((Control)sender); 
Questions connexes