Una de las cosas que muchas veces demandan los clientes cuando uno desarrolla aplicaciones en Windows Forms (y probablemente también en WPF) es poder utilizarlas sin el mouse. La mayor parte de las veces, cuando desarrollamos software de gestión, no somos conscientes de que nuestros clientes prefieren hacerlo todo sin utilizar el mouse (más que nada porque la gente “mundana” no tiene demasiada facilidad para utilizarlo). Por ello, tenemos que hacer un poco de Tunning a nuestras aplicaciones una vez hayamos terminado de definir la UI para que se puedan utilizar con el teclado fácilmente.
La primera cosa que tendríamos que tener en cuenta es el desplazamiento entre los controles: TabStop y TabIndex. Estas dos son las propiedades esenciales para definir cómo y dónde se va a ir cada vez que el usuario pulse la tecla Tab.
La peculiaridad que hay que tener en cuenta es que cuenta el orden de niveles. Ya que el valor de los TabIndex se toma según el contenedor en el que esté puesto (el mismo Form, Usercontrol, Panel y el resto de los Group controls). Así, por tanto, siguiendo esta base facilitaremos el trabajo.
Para facilitar esta tarea, haremos uso de dos características de Visual Studio: Tab View y Document Outline.
Después, tendríamos que añadir el acceso directo a Buttons, RadioButtons, CheckBoxes, etc… mediante una pulsación de teclado. Para tal efecto, podemos hacer uso del &. Con esto conseguimos que el usuario haga uso de las combinaciones de las teclas ALT + [letra]. Para determinar la letra, en la propiedad Text del control añadimos el caracter & antes de la letra que vayamos a asignar.
Tras ello, quizás también puede ser interesante añadir características extras como reemplazar la tecla [Enter] por la tecla [Tab] en los TextBox y los ComboBox. Ya que muchas veces los usuarios sólo han de utilizar la parte derecha del teclado (Bloque Numérico). Para conseguir tal efecto, tenemos que heredar la clase TextBox y sobreescribir la función de procesado de comandos de la ventana.
Probablemente, con estas mejoras aumente la usabilidad de nuestra aplicación desde teclado.

me gustaría saber como se consigue lo que comentas sobre el tab o enter en un textbox.
“tenemos que heredar la clase TextBox y sobreescribir la función de procesado de comandos de la ventana”
Gracias de antemano.
Un saludo
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter)
keyData = Keys.Tab;
return base.ProcessDialogKey(keyData);
}