Problema con los controles dentro de un TabPage.

16/02/2007 - 12:54 por Ocobo | Informe spam
Hola,

Dentro de un TabPage tengo insertado 3 controles TextBox.
Deseo que pulsado la tecla F2, y dependiendo del Texbox donde me encuentre,
me inserte un texto determinado. Tengo el siguiente código para controlar las
pulsaciones de teclado a nivel de formulario:

Private Sub Prueba_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress

If e.KeyChar = Convert.ToChar(Keys.F2) And Me.ActiveControl.Name =
"Provincia_" Then

e.Handled = True
' Ponme en el texbox, lo que sea

End If
End Sub

El problema es que Me.ActiveControl.Name me da el nombre del TabPage, no el
nombre del TextBox que está dentro del TabPage.

Cómo puedo referirme al nombre del control del Textbox dentro de un TabPage.

Gracias.
 

Leer las respuestas

#1 SoftJaén
16/02/2007 - 15:16 | Informe spam
"Ocobo" preguntó:

Cómo puedo referirme al nombre del control del Textbox
dentro de un TabPage.



Hola:

Para lo que deseas hacer, no hace falta averiguar el nombre del control
TextBox; simplemente debes de obtener el control actualmente activo en el
formulario, y si es un control de texto, indicarle que escriba el texto
correspondiente.

En el evento «KeyDown» del formulario (que para estas cosas es mejor que el
evento «KeyPress»), ejecuta lo siguiente:

Private Sub Prueba_KeyDown( ... ) Handles Me.KeyDown

If e.KeyCode = Keys.F2 Then

' Se ha pulsado la tecla F2.
'
e.Handled = True

' Obtenemos el control que tiene el foco.
'
Dim ctrl As Control = Me.ActiveControl

' Si es un control de texto el que tiene
' el foco, escribimos en él.
'
If TypeOf (ctrl) Is TextBox Then
ctrl.Text = "Lo que sea."
End If

End If

End Sub

Para qiue se desencadene el evento «KeyDown», doy por sentado que la
propiedad «KeyPreview» del formulario se encuentra establecida a «True».

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares