Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo establecer el foco en un control cuando se carga el formulario en Visual Basic NET o en Visual Basic 2005

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 822493
Resumen
En este artículo se describe cómo establecer el foco en un control cuando se carga el formulario. Este artículo describe cómo utilizar la propiedad Form.ActiveControl , cómo utilizar el método Control.Focus y cómo utilizar el método Control.Select para establecer el foco en un control.

La propiedad Form.ActiveControl devuelve el control activo o establece el control activo en el formulario. Cuando la propiedad ActiveControl del formulario se establece en un control en el formulario, el enfoque cambia al control.

El método Control.Select activa el control especificado y establece el foco en el control.

El método Control.Focus establece el foco de entrada en el control. Un control puede recibir el foco de entrada utilizando el método Control.Focus si se cumplen las condiciones siguientes:
  • El bit de estilo de ControlStyles.Selectable del control se establece enTrue.
  • El control que recibirá el foco se encuentra en anothercontrol, y todos los controles primarios son visibles y están habilitados.
Nota: Puede utilizar el método Control.Focus para establecer el foco en un control en el evento Load del formulario cuando la propiedad Visible del formulario está establecida en True.

volver al principio

Requisitos

En este artículo se supone que está familiarizado con los temas siguientes:
  • Sintaxis de Microsoft Visual Basic
  • Entorno de Microsoft Visual Studio. NET o Microsoft Visual Studio 2005
  • Controles de Visual Basic de Microsoft
volver al principio

La propiedad Form.ActiveControl

En el ejemplo siguiente se describe cómo utilizar la propiedad ActiveControl de Form2 para establecer el foco en el control TextBox sin texto:
  1. Inicie Visual Studio 2005 o Visual Studio. NET.
  2. En el menú archivo , elijanuevoy, a continuación, haga clic en proyecto.
  3. En Tipos de proyecto, elijaProyectos de Visual Basic.

    Nota: En Visual Studio 2005, haga clic en Visual Basic en Tipos de proyecto.
  4. En plantillas, haga clic enAplicación para Windowsy, a continuación, haga clic en Aceptar.

    Bydefault, se crea Form1.
  5. Agregue un controlButton a Form1.
  6. Haga clic en Button1y, a continuación, haga clic enPropiedades.
  7. En el cuadro de diálogo Propiedades , establezca la propiedadText para Establecer el foco.
  8. En el menú proyecto , haga clic en Formulario de AddWindowsy, a continuación, haga clic en Abrir.

    De forma predeterminada, se crea el Form2.
  9. Agregue tres controlesTextBox a Form2.
  10. Agregue tres toForm2 controles de etiqueta .

    Nota: Coloque cada control de etiqueta en el lado izquierdo del control TextBox .
  11. En el cuadro de diálogo Propiedades , establezca la propiedadtexto de Label1 ennombre, establezca la propiedad Text de Label2 a empresa, conjunto de andthen la propiedad Text de Label3 a ContactNo.
  12. En el cuadro de diálogo Propiedades , quitar thetext en la propiedad Text de TextBox1, quitar thetext en la propiedad Text de TextBox2y, a continuación, quitar thetext en la propiedad Text de TextBox3.
  13. Agregue el código siguiente al controlador de eventosButton1_Click en Form1:
    'Create an instance of Form2.Dim MyForm As New Form2()'Set the Text in the TextBoxes on Form2.MyForm.TextBox1.Text = "John"MyForm.TextBox3.Text = "123456"'Display the form.MyForm.Show()
  14. Agregue el código siguiente al controlador de eventos Form2_Load:
    Dim i As IntegerFor i = 0 To 5  If  Me.Controls(i).Name Is "TextBox1" Or Me.Controls(i).Name Is "TextBox2" Or Me.Controls(i).Name Is "TextBox3" Then      'Find the TextBox for which Text is not set.      If Me.Controls(i).Text = "" Then           'Set the focus on the control without any text.           Me.ActiveControl = Me.Controls(i)      End If  End IfNext
  15. En el menú Generar , haga clic en Generar solución.
  16. En el menú Depurar , haga clic enInicio.
  17. Haga clic en establecer el foco.

    Thefocus se establece en el control TextBox sin texto.
volver al principio

El método Control.Select

En el ejemplo siguiente se describe cómo buscar el control TextBox sin texto en Form2 y, a continuación, se describe cómo utilizar el método Control.Select para establecer el foco para el control:
  1. Reemplace la instrucción siguiente en el controlador de eventos Form2_Load
    Me.ActiveControl = Me.Controls(i)
    con la siguiente instrucción:
     Me.Controls(i).Select()
  2. En el menú Generar , haga clic en Generar solución.
  3. En el menú Depurar , haga clic enInicio.
  4. Haga clic en establecer el foco.

    Thefocus se establece en el control TextBox sin texto.
volver al principio

El método Control.Focus

En el ejemplo siguiente se describe cómo buscar el control TextBox sin texto en Form2, se describe cómo establecer la propiedad Visible de Form2 en Truey, a continuación, se describe cómo establecer el foco en el control utilizando el método Focus del control:
  1. Reemplace el código existente en el controlador de eventos Form2_Loadcon el código siguiente:
    'Set the visible property of the form to true, 'and then set the focus to the control.Me.Visible = TrueDim i As IntegerFor i = 0 To 5  If Me.Controls(i).Name Is "TextBox1" Or Me.Controls(i).Name Is "TextBox2" Or Me.Controls(i).Name Is "TextBox3" Then      'Find the TextBox for which Text is not set.      If Me.Controls(i).Text = "" Then          'Set the focus on the control with no text.          Me.Controls(i).Focus()      End If  End IfNext
  2. En el menú Generar , haga clic en Generar solución.
  3. En el menú Depurar , haga clic enInicio.
  4. Haga clic en establecer el foco.

    Isset de foco en el control TextBox sin texto.
volver al principio

Solucionar problemas

  • Quite el texto en los controles de cuadro de texto en Form2 antes de ejecutar la aplicación.
  • Puede utilizar el método Control.Focus en el evento Load del formulario para establecer el foco en acontrol sólo después de que se establece la propiedad Visible del formulario en True.
volver al principio
Referencias
Para obtener más información, visite los siguientes sitios Web de Microsoft Developer Network (MSDN):volver al principio

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 822493 - Última revisión: 01/02/2016 05:47:00 - Revisión: 3.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbvs2005swept kbvs2005applies kbwindowsforms kbforms kbctrl kbcontrol kbhowtomaster kbhowto kbmt KB822493 KbMtes
Comentarios
script> ; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">/html>p;did=1&t=">