Crear teclas de acceso para controles de formularios Windows Forms

Una tecla de acceso es un carácter subrayado en el texto de un menú, un elemento de menú o la etiqueta de un control tal como un botón. Permite que el usuario «haga clic» en un botón al presionar la tecla ALT en combinación con la tecla de acceso predefinida. Por ejemplo, si un botón ejecuta un procedimiento para imprimir un formulario y, por lo tanto, su propiedad Text se establece como «Imprimir», si se agrega un símbolo de Y comercial («&») antes de la letra «I», ésta aparecerá subrayada en el texto del botón el tiempo de ejecución. El usuario puede ejecutar el comando asociado con el botón presionando ALT+P. No se puede tener una tecla de acceso en un control que no pueda recibir el foco, por ejemplo un control TabPage.

Para crear una tecla de acceso para un control en el diseñador

  • En la ventana Propiedades, establezca la propiedad Text como una cadena que incluya un signo de Y comercial antes de la letra que será la tecla de acceso. Por ejemplo, para establecer la letra «I» como tecla de acceso, escriba «&Imprimir» en la cuadrícula.

Para crear una tecla de acceso para un control mediante programación

  • Establezca la propiedad Textcomo una cadena que incluya un signo de Y comercial antes de la letra que se convertirá en acceso directo.
    ' Visual Basic
    ' Set the letter "P" as an access key.
    Button1.Text = "&Print"
    
    // C#
    // Set the letter "P" as an access key.
    button1.Text = "&Print";
    
    // C++
    // Set the letter "P" as an access key.
    button1->Text = S"&Print";

    Nota   Si desea incluir un símbolo de unión en un título sin crear una tecla de acceso, incluya dos símbolos de Y comercial (&&). En el título sólo aparecerá un símbolo de Y comercial y no habrá caracteres subrayados.

Acceder a un control por la tecla rápida sin necesidad de pulsar ALT+letra

Cuando necesitamos acceder a distintos controles que tienen una tecla de acceso rápido y no deseamos pulsar la combinación de teclas: Alt + Letra_acceso podemos usar esta opción.

Es importante usarlo únicamente en elementos del formulario donde no vayamos a insertar texto ya que no se nos permitá insertar los caracteres que asociemos como tecla rápida.

En primer lugar comprobamos si la tecla pulsada coincide con alguna de acceso rápido, para ello, es importante que este activada la opción «Option Compare Text», el valor de «KeyPreview» del formulario debe ser «True».

Sub Form_KeyPress (KeyAscii As Integer) 
 Dim ch As String 
 Dim i%, j% 
 ch = Chr$(KeyAscii)   
 'Recorremos todos los controles del formulario 
 For i = 0 To Me.Controls.Count - 1 
 j = InStr(Me.Controls(i).Caption, "&" & ch) 
 'Si tiene un código de acceso rápido 
 If j Then 
 'Esto es para que descarte la tecla pulsada 
 KeyAscii = 0 
 'Enviamos la pulsación Alt+tecla 
 SendKeys "%" & ch 
 Exit For 
 End If 
 Next 
 'Si se ha producido un error 
 Err = 0 
 'Restauramos la rutina de detección de errores 
 On Local Error GoTo 0 
End Sub 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *