Tutorial: Demostración de la herencia visual

La herencia visual permite ver los controles del formulario base y agregar controles nuevos. En este tutorial aprenderá a crear un formulario base y a compilarlo en una biblioteca de clases. Se importa la biblioteca de clases a otro proyecto y se crea un nuevo formulario que hereda del formulario base. Durante este tutorial aprenderá a:

  • Crear un proyecto de biblioteca de clases que contenga un formulario base.

  • Agregar un botón con propiedades que las clases derivadas del formulario base puedan modificar.

  • Agregar un botón que no puedan modificar los herederos del formulario base.

  • Crear un proyecto que contenga un formulario que herede de BaseForm.

Por último, en este tutorial se mostrará la diferencia que existe entre controles privados y protegidos de un formulario heredado.

Nota

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Para cambiar la configuración, elija la opción Importar y exportar configuraciones del menú Herramientas. Para obtener más información, vea Trabajar con valores de configuración.

Nota de precauciónPrecaución

No todos los controles admiten la herencia visual de un formulario base. Los siguientes controles no admiten el escenario descrito en este tutorial:

    WebBrowser

    ToolStrip

    ToolStripPanel

    TableLayoutPanel

    FlowLayoutPanel

    DataGridView

Estos controles del formulario heredado siempre son de solo lectura, independientemente de los modificadores que se usen (private, protected o public).

Pasos del escenario

El primer paso es crear el formulario base.

Para crear un proyecto de biblioteca de clases que contenga un formulario base

  1. En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto para abrir el cuadro de diálogo Nuevo proyecto.

  2. Cree una aplicación de Windows Forms denominada BaseFormLibrary. Para obtener información detallada, vea Cómo: Crear un nuevo proyecto de aplicación de Windows Forms.

  3. Para crear una biblioteca de clases en lugar de una aplicación estándar de Windows Forms, en el Explorador de soluciones, haga clic con el botón secundario del mouse en el nodo de proyecto BaseFormLibrary y, a continuación, seleccione Propiedades.

  4. En las propiedades del proyecto, cambie el Tipo de resultado de Aplicación para Windows a Biblioteca de clases.

  5. En el menú Archivo, elija Guardar todo para guardar el proyecto y los archivos en la ubicación predeterminada.

Los dos procedimientos siguientes sirven para agregar botones al formulario base. Para ilustrar la herencia visual, se otorgará a los botones distintos niveles de acceso estableciendo sus propiedades Modifiers.

Para agregar un botón que los herederos del formulario base pueden modificar

  1. Abra Form1 en el diseñador.

  2. En la ficha Todos los formularios Windows Forms del Cuadro de herramientas, haga doble clic en Botón para agregar un botón al formulario. Utilice el mouse para colocar el botón y cambiar su tamaño.

  3. En la ventana Propiedades, establezca las propiedades siguientes del botón:

    • Establezca la propiedad Text en Hola.

    • Establezca la propiedad (Name) en btnProtected.

    • Establezca la propiedad Modifiers en Protected. Esto permite a los formularios que heredan de Form1 modificar las propiedades de btnProtected.

  4. Haga doble clic en el botón Hola para agregar un controlador de eventos para el evento Click.

  5. Agregue la siguiente línea de código al controlador de eventos:

    MessageBox.Show("Hello, World!")
    
    MessageBox.Show("Hello, World!");
    

Para agregar un botón que no pueden modificar los herederos del formulario base

  1. Cambie a la vista de diseño haciendo clic en la ficha Form1.vb [Diseño], Form1.cs [Diseño] o Form1.jsl [Diseño] sobre el editor de código o presionando F7.

  2. Agregue un segundo botón y establezca sus propiedades como se indica a continuación:

    • Establezca la propiedad Text en Say Goodbye.

    • Establezca la propiedad (Name) en btnPrivate.

    • Establezca la propiedad Modifiers en Private. Esto impide a los formularios que heredan de Form1 modificar las propiedades de btnPrivate.

  3. Haga doble clic en el botón Say Goodbye para agregar un controlador de eventos para el evento Click. Introduzca la siguiente línea de código en el procedimiento de evento:

    MessageBox.Show("Goodbye!")
    
    MessageBox.Show("Goodbye!");
    
  4. En el menú Generar, elija Generar BaseFormLibrary para generar la biblioteca de clases.

    Una vez generada la biblioteca, se puede crear un nuevo proyecto que herede del formulario que se acaba de crear.

Para crear un proyecto que contenga un formulario que herede del formulario base

  1. En el menú Archivo, elija Agregar y, a continuación, seleccione Nuevo proyecto para abrir el cuadro de diálogo Agregar nuevo proyecto.

  2. Cree una aplicación de Windows Forms denominada InheritanceTest. Para obtener información detallada, vea Cómo: Crear un nuevo proyecto de aplicación de Windows Forms.

Para agregar un formulario heredado

  1. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto InheritanceTest, haga clic en Agregar y seleccione Nuevo elemento.

  2. En el cuadro de diálogo Agregar nuevo elemento, seleccione la categoría Windows Forms (si tiene una lista de categorías) y, a continuación, seleccione la plantilla Formulario heredado.

  3. Deje el nombre predeterminado de Form2 y haga clic en Agregar.

  4. En el cuadro de diálogo Selector de herencia, seleccione Form1 en el proyecto BaseFormLibrary como formulario del que se va a heredar y haga clic en Aceptar.

    Con esto se crea un formulario en el proyecto InheritanceTest que deriva del formulario de BaseFormLibrary.

  5. Haga doble clic para abrir el formulario heredado (Form2) en el diseñador, si aún no está abierto.

    En el diseñador, los botones heredados tienen un símbolo (Captura de pantalla de VisualBasicInheritanceSymbol) en la esquina superior para indicar que son heredados.

  6. Seleccione el botón Hola y observe los cuadros de tamaño. Los herederos no pueden mover este botón, cambiar su título o tamaño ni realizar ninguna otra modificación, puesto que está protegido.

  7. Seleccione el botón Adiós privado y observe que no tiene cuadros de tamaño. Además, en la ventana Propiedades, las propiedades de dicho botón aparecen atenuadas para indicar que no se pueden modificar.

  8. Si utiliza Visual C#:

    1. En el Explorador de soluciones, haga clic con el botón secundario en Form1 en el proyecto InheritanceTest y, a continuación, elija Eliminar. En el cuadro de mensaje que aparece, haga clic en Aceptar para confirmar la eliminación.

    2. Abra el archivo Program.cs y cambie la línea Application.Run(new Form1()); a Application.Run(new Form2());.

  9. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto InheritanceTest y seleccione Establecer como proyecto de inicio.

  10. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto InheritanceTest y seleccione Propiedades.

  11. En las páginas de propiedades de InheritanceTest, establezca que el Objeto de inicio sea el formulario heredado (Form2).

  12. Presione F5 para ejecutar la aplicación y observe el comportamiento del formulario heredado.

Pasos siguientes

La herencia de los controles de usuario funciona de forma similar. Abra un nuevo proyecto de biblioteca de clases y agregue un control de usuario. Coloque controles constituyentes en el proyecto y compílelo. Abra otro proyecto de biblioteca de clases nuevo y agregue una referencia a la biblioteca de clases compilada. Pruebe también a agregar al proyecto un control heredado (mediante el cuadro de diálogo Agregar nuevos elementos) y utilice el Selector de herencia. Agregue un control de usuario y cambie la instrucción Inherits (: en Visual C#). Para obtener más información, vea Cómo: Heredar formularios Windows Forms.

Vea también

Tareas

Cómo: Heredar formularios Windows Forms

Referencia

Selector de herencia (Cuadro de diálogo)

Tutoriales sobre los formularios Windows Forms

Otros recursos

Herencia visual de formularios Windows Forms

Windows Forms

Historial de cambios

Fecha

Historial

Motivo

Septiembre de 2010

Se ha corregido un paso.

Comentarios de los clientes.