2011-01-07 15 views
8

Me gustaría crear atajos de teclado para algunos controles en mi aplicación Windows Forms.¿Cómo se pueden crear accesos directos alternativos en una aplicación de Windows Forms?

Ejemplo:

Screenshot of XYZ

Aviso el subrayado, F E V P B.

tengo una etiqueta y un control de cuadro de texto. Me gustaría asociar ese Alt atajo de teclado a la etiqueta y el cuadro de texto. Por lo tanto, si alguien presiona Alt + B, se enfoca en el cuadro de texto asociado. ¿Hay alguna manera de crear esta asociación?

Respuesta

11

Cuando la etiqueta recibe el foco al presionar su tecla aceleradora (configurada mediante &), reenvía el enfoque al siguiente control en el orden de tabulación, ya que las etiquetas no son editables. Necesita el cuadro de texto para ser el siguiente control en el orden de tabulación.

Para ver y corregir el orden de tabulación de su formulario, utilice el comando Ver + Orden de tabulación en el IDE. El uso de TabPages u otros contenedores agrega un nivel de anidación al orden de tabulación (por ejemplo, 1.1, 1.2 en lugar de solo 1 y 2), pero si la etiqueta y el cuadro de texto están dentro del mismo contenedor, no debería ser demasiado difícil establecerlos correctamente.

5

Tipo &File o &Edit y obtendrá subrayado. Eso vinculará automáticamente las letras subrayadas con la palabra clave Alt para el acceso directo.

EDITAR. Tu pregunta se ha modificado, así que me gustaría continuar con mi respuesta. Desea capturar algunas combinaciones de teclas (Alt + F) y establecer un foco en el cuadro de texto.

Puede intentar esta solución utilizando el evento KeyDown del formulario principal.

private void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Alt && e.KeyCode == Keys.F) 
     { 
      this.textBox1.Focus(); 
     } 
    } 

Para lograr esto, se tiene que establecer, además, KeyPreview propiedad del formulario a true.

+0

Esto no parece funcionar. Estoy usando un control TabPage y quiero que la F esté subrayada en "Fuente". Cambiar la propiedad .Text de tagPage1 no lo subraya. –

+0

Bueno, la imagen que proporcionó muestra una tira de menú. Desea una tabPage llamada Fuente (con F subrayada) y luego de presionar 'Alt + F' desea que se muestre tabPage. ¿Estoy en lo correcto? – nan

+0

Sí, parece que el signo común no funciona en TabPages. –

0
this.KeyDown += new KeyEventHandler(Form1_KeyDown); 

void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
if (e.Alt && e.KeyCode == Keys.W) 
{ 
    btnShowConstructionCdFun(); 
} 
} 
Cuestiones relacionadas