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

Seleccione idioma Seleccione idioma
Id. de artículo: 822493 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

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 se establece la propiedad ActiveControl del formulario a un control en el formulario, se mueve el foco 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 para el control. Un control puede recibir el foco de entrada mediante el método de Control.Focus si se cumplen las condiciones siguientes:
  • El bit de estilo ControlStyles.Selectable del control se establece en true .
  • El control que recibirá el foco está contenido en otro control 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 se establece en true .

Requisitos

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

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 , seleccione nuevo y, 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 bajo Tipos de proyecto .
  4. En plantillas , haga clic en Aplicación para Windows y, a continuación, haga clic en Aceptar .

    De forma predeterminada, se crea Form1.
  5. Agregue un control Button a Form1.
  6. Haga clic con el botón secundario del mouse en Button1 y, a continuación, haga clic en Propiedades .
  7. En el cuadro de diálogo Propiedades , establezca la propiedad Text para Establecer el foco .
  8. En el menú proyecto , haga clic en Agregar formulario Windows Forms y a continuación, haga clic en Abrir .

    De forma predeterminada, se crea el Form2.
  9. Agregue 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 la propiedad de texto de Label1 en nombre , establezca la propiedad Text de Label2 a la empresa y, 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 de texto de TextBox1 , quite el texto en la propiedad Text de TextBox2 y, a continuación, quite el texto en la propiedad Text de TextBox3 .
  13. Agregue el código siguiente al 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 a la Form2_Load controlador de eventos:
    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 without any text.
               Me.ActiveControl = Me.Controls(i)
          End If
      End If
    Next
  15. En el menú Generar , haga clic en Generar soluciones .
  16. En el menú Depurar , haga clic en iniciar .
  17. Haga clic en establecer el enfoque .

    El enfoque se establece en el control TextBox sin texto.

El método Control.Select

En el ejemplo siguiente se describe cómo buscar el control TextBox sin texto en Form2 y describe cómo utilizar el método Control.Select para establecer el foco para el control:
  1. Reemplazar 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 soluciones .
  3. En el menú Depurar , haga clic en iniciar .
  4. Haga clic en establecer el enfoque .

    El enfoque se establece en el control TextBox sin texto.

El método Control.Focus

En el ejemplo siguiente se describe cómo encontrar el control TextBox sin texto en Form2, se describe cómo establecer la propiedad visible de Form2 a true y, a continuación, se describe cómo establecer el foco en el control mediante el método Focus del control:
  1. Reemplace el código existente en el Form2_Load controlador de eventos con 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 soluciones .
  3. En el menú Depurar , haga clic en iniciar .
  4. Haga clic en establecer el enfoque .

    El enfoque se establece en el control TextBox sin texto.

Solucionar problemas

  • Elimine el texto en los controles TextBox 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 sólo después de la propiedad visible del formulario está establecida en true .

Referencias

Para obtener más información, visite los siguientes sitios Web de Microsoft Developer Network (MSDN):
Evento Form.Load
http://msdn2.microsoft.com/en-us/library/system.windows.forms.form.load(vs.71).aspx
Método Control.Focus
http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.focus(vs.71).aspx

Propiedades

Id. de artículo: 822493 - Última revisión: lunes, 26 de noviembre de 2007 - Versión: 2.5
La información de este artículo se refiere a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palabras clave: 
kbmt kbvs2005swept kbvs2005applies kbwindowsforms kbforms kbctrl kbcontrol kbhowtomaster kbhowto KB822493 KbMtes
Traducción automática
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

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com