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

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 el
La propiedad ActiveControl del formulario se establece en un control en el formulario, el enfoque se desplaza 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 en
    True.
  • El control que recibirá foco está incluido en otro control y todos sus controles principales 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 .NET o Visual Studio 2005.
  2. En el menú archivo , elija
    De nuevoy, a continuación, haga clic en proyecto.
  3. En Tipos de proyecto, haga clic en
    Proyectos de Visual Basic.

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

    De forma predeterminada, se crea Form1.
  5. Agregar un
    Control de botón a Form1.
  6. Haga clic en Button1y, a continuación, haga clic en
    Propiedades.
  7. En el cuadro de diálogo Propiedades , establezca el
    Propiedad Text para Establecer el foco.
  8. En el menú proyecto , haga clic en Agregar Windows Formsy, a continuación, haga clic en Abrir.

    De forma predeterminada, se crea el Form2.
  9. Agregar tres
    Controles TextBox a Form2.
  10. Agregue tres controles de etiqueta a Form2.

    Nota: Coloque cada control de etiqueta en el lado izquierdo del control TextBox .
  11. En el cuadro de diálogo Propiedades , establezca el
    Propiedad Text de Label1 a
    Nombre, establezca la propiedad Text de Label2 en la empresay, a continuación, establezca la propiedad Text de Label3 a ContactNo.
  12. En el cuadro de diálogo Propiedades , quite el texto en la propiedad Text de TextBox1, quite el texto en la propiedad Text de TextBox2y, a continuación, quite el texto en la propiedad Text de TextBox3.
  13. Agregue el código siguiente a la
    Controlador de eventos Button1_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 If
    Next
  15. En el menú Generar , haga clic en Generar solución.
  16. En el menú Depurar , haga clic en
    Iniciar.
  17. Haga clic en establecer el foco.

    Se establece el foco 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 en
    Iniciar.
  4. Haga clic en establecer el foco.

    Se establece el foco 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 = True
    Dim i As Integer
    For 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 If
    Next
  2. En el menú Generar , haga clic en Generar solución.
  3. En el menú Depurar , haga clic en
    Iniciar.
  4. Haga clic en establecer el foco.

    Se establece el 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 un control 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
Propiedades

Id. de artículo: 822493 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios