Crear un formulario heredado desde un proyecto independiente

Crear un formulario heredado desde un proyecto independiente

La diferencia principal en este caso consiste en que dentro de la solución de proyectos, no está el proyecto que contiene el formulario base, por lo que tendremos que buscar el archivo que contiene la librería de clases manualmente.

Vamos a crear un nuevo proyecto de aplicación Windows, al que daremos el nombre FormuDerivado2 (hacer clic aquí para acceder a este ejemplo), eliminando el formulario por defecto que contiene. Después, seleccionaremos el nombre del proyecto en el explorador de soluciones.

© Grupo EIDOS 30. Codificación avanzada de controles y herencia visual

A continuación, elegiremos el menú de VS.NET Proyecto + Agregar formulario heredado, asignando al formulario el nombre frmEntrada. Ver Figura 271.

Figura 271. Crear formulario heredado en proyecto independiente.

Al pulsar Abrir, el selector de herencia nos avisa de que no puede localizar en el ámbito de que dispone, un ensamblado (biblioteca de clases en este caso) que contenga formularios de los que heredar. Ver Figura 272.

Figura 272. El IDE no puede localizar referencias hacia formularios base.

Programación con Visual Basic .NET © Grupo EIDOS

Tenemos por lo tanto, que pulsar el botón Examinar y buscar el archivo HERENCIAVISUAL.DLL, que creamos en el ejemplo anterior y se encuentra en la ruta de dicho proyecto, en su directorio bin: LetraUnidad:\HerenciaVisual\bin. Una vez localizado, aceptaremos esta ventana. Ver Figura 273.

Figura 273. Seleccionar formulario base que se encuentra en otro ensamblado.

El IDE se encargará a continuación, de establecer la referencia entre nuestro proyecto y el ensamblado o archivo DLL que contiene el formulario base, mostrando finalmente el nuevo formulario heredado del mismo modo en que vimos en el ejemplo anterior. Seguidamente, añadiremos algunos controles para adaptarlo a las necesidades particulares de este proyecto. Ver Figura 274.

Figura 274. Formulario derivado de formulario base a través de herencia visual.

Como podemos comprobar, hemos agregado un control Timer, un CheckBox y un Label. Cuando hagamos clic sobre el CheckBox, se visualizará el Label mostrando la hora actual, que será actualizada cada segundo en el evento Tick del control Timer. Observe el lector los métodos Show( ) y Hide( ), que nos permiten mostrar y ocultar respectivamente un control. El Código fuente 479 muestra el código necesario para los eventos de estos controles.

Public Class frmEntrada Inherits HerenciaVisual.frmValidar '.... '.... ' al hacer clic en el CheckBox, mostrar u ocultar ' la hora según el valor de la casilla

© Grupo EIDOS 30. Codificación avanzada de controles y herencia visual

Private Sub chkMostrarHora_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkMostrarHora.CheckedChanged

If Me.chkMostrarHora.Checked Then Me.lblHora.Show() Me.tmrTemporizador.Start()

Else Me.lblHora.Hide() Me.tmrTemporizador.Stop()

End If

End Sub

' cuando el temporizador esté activo, al lanzarse este ' evento mostrar la hora en el Label Private Sub tmrTemporizador_Tick(ByVal sender As Object, ByVal e As

System.EventArgs) Handles tmrTemporizador.Tick

Me.lblHora.Text = DateTime.Now.ToString("H:mm:ss")

End Sub End Class

Código fuente 479.

Menús