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