Uso de Visual C# para agregar controles mediante programación a formularios Windows Forms en tiempo de ejecución

Este artículo le ayuda a agregar y configurar controles mediante programación en un formulario Windows Form mediante Visual C#.

Versión original del producto: Visual C#
Número de KB original: 319266

Resumen

En este artículo paso a paso se muestra cómo agregar y configurar mediante programación algunos controles usados habitualmente en un formulario Windows Form. El control de eventos se ha omitido del código de ejemplo.

El Kit de desarrollo de software (SDK) de Microsoft .NET Framework proporciona muchos controles visuales que puede usar para compilar una aplicación de Windows Forms. Puede agregar y configurar controles en tiempo de diseño en Visual Studio .NET o en Visual Studio. Puede agregar y configurar controles mediante programación en tiempo de ejecución.

Requisitos

En este artículo se supone que está familiarizado con los temas siguientes:

  • Sintaxis de Visual C#
  • El entorno de Visual Studio .NET, el entorno de Visual Studio
  • Propósito de los controles comunes de Visual C#

Creación de una aplicación Windows Forms

  1. Inicie Visual Studio .NET o Visual Studio y cree un nuevo proyecto de aplicación de Windows de Visual C# denominado WinControls. Form1 se agrega al proyecto de forma predeterminada.

  2. Haga doble clic en Form1 para crear y ver el procedimiento de Form1_Load evento.

  3. Agregue variables de instancia privada a la Form1 clase para trabajar con controles comunes de Windows. La Form1 clase comienza de la siguiente manera:

    public class Form1 : System.Windows.Forms.Form
    {
         //Controls.
         private TextBox txtBox = new TextBox();
         private Button btnAdd = new Button();
         private ListBox lstBox = new ListBox();
         private CheckBox chkBox = new CheckBox();
         private Label lblCount = new Label();
        //Other code.
    }
    

    Nota:

    El código debe cambiarse en Visual Studio. Al crear un proyecto de Windows Forms, Visual C# agrega un formulario al proyecto de forma predeterminada. Este formulario se denomina Form1. Los dos archivos que representan el formulario se denominan Form1.cs y Form1.designer.cs. Escriba el código en Form1.cs. El archivo Designer.cs es donde el Windows Forms Designer escribe el código que implementa todas las acciones que ha realizado agregando controles. Para obtener más información sobre la Windows Forms Designer en Visual C#, vea Creating a Project (Visual C#).

Personalización de las propiedades de formulario y control

  1. Busque el procedimiento de Form1_Load evento y agregue el código siguiente al procedimiento para personalizar la apariencia del control Formulario:

     //Set up the form.
     this.MaximizeBox = false;
     this.MinimizeBox = false;
     this.BackColor = Color.White;
     this.ForeColor = Color.Black;
     this.Size = new System.Drawing.Size(155, 265);
     this.Text = "Run-time Controls";
     this.FormBorderStyle = FormBorderStyle.FixedDialog;
     this.StartPosition = FormStartPosition.CenterScreen;
    
  2. Agregue el código siguiente al procedimiento de Form1_Load evento para personalizar la apariencia del control Button:

     //Format controls. Note: Controls inherit color from parent form.
     this.btnAdd.BackColor = Color.Gray;
     this.btnAdd.Text = "Add";
     this.btnAdd.Location = new System.Drawing.Point(90, 25);
     this.btnAdd.Size = new System.Drawing.Size(50, 25);
    
  3. Agregue el código siguiente para personalizar la apariencia del control TextBox en Form1_Load:

     this.txtBox.Text = "Text";
     this.txtBox.Location = new System.Drawing.Point(10, 25);
     this.txtBox.Size = new System.Drawing.Size(70, 20);
    
  4. Agregue el código siguiente para personalizar la apariencia del control ListBox en Form1_Load:

     this.lstBox.Items.Add("One");
     this.lstBox.Items.Add("Two");
     this.lstBox.Items.Add("Three");
     this.lstBox.Items.Add("Four");
     this.lstBox.Sorted = true;
     this.lstBox.Location = new System.Drawing.Point(10, 55);
     this.lstBox.Size = new System.Drawing.Size(130, 95);
    
  5. Agregue el código siguiente para personalizar la apariencia del control CheckBox en Form1_Load:

     this.chkBox.Text = "Disable";
     this.chkBox.Location = new System.Drawing.Point(15, 190);
     this.chkBox.Size = new System.Drawing.Size(110, 30);
    
  6. Agregue el código siguiente para personalizar la apariencia del control Label en Form1_Load:

     this.lblCount.Text = lstBox.Items.Count.ToString() + " items";
     this.lblCount.Location = new System.Drawing.Point(55, 160);
     this.lblCount.Size = new System.Drawing.Size(65, 15);
    

Agregar controles al formulario

  1. Agregue el código siguiente para agregar cada objeto a la Controls matriz del formulario al final de Form1_Load:

     //Add controls to the form.
     this.Controls.Add(btnAdd);
     this.Controls.Add(txtBox);
     this.Controls.Add(lstBox);
     this.Controls.Add(chkBox);
     this.Controls.Add(lblCount);
    
  2. Guarde el proyecto.

Comprobar que funciona

Para comprobar que el ejemplo funciona, seleccione Iniciar en el menú Depurar .

Nota:

  • Aunque el formulario y los controles aparecen, actualmente no hacen nada porque no ha escrito ningún controlador de eventos.
  • Recuerde que las posiciones de estos controles son estáticas. Para que sean más sólidos cuando el formulario esté extendido, haga que los puntos sean dinámicos en relación con la posición del formulario. Si los controles son estáticos, el estiramiento del formulario puede interferir con la presentación de otros controles en el formulario.

Referencias

Para obtener más información sobre el uso de controles mediante programación, vea el tema Aplicaciones de Windows en la sección Visual C# de la documentación de ayuda de Visual Studio .NET Online o la documentación de la Ayuda en línea de Visual Studio.