A Toda Máquina Con HerenciaVisual .NETFecha: 03/Sep/2005 (31/08/05)Autor: Lic. Giovanni Cuadra ReyesAmericanCollege IT Man...
La Herencia Visual de Formularios podría definirse como el duplicado de un formularioa partir de otro, denominado original...
formulario base se puede representar un tamaño estandar de objetos, como lo sonbotones, cajas de texto y otros controles c...
La figura 4.0 Muestra las plantilla para herencia de formularios.Todos los eventos manejados que se especifican en el form...
heredados que provienen del formulario base modificado, dicho de otra forma,recompilar la aplicación nuevamente. Tomando e...
"Server=localhost;" & _"DataBase=Northwind;" & _"Integrated Security=SSPI"Protected Connect As Boolean = FalseProtected co...
da.Fill(dsProducts, "Products")IsConnecting = FalseConnect = TruefrmStatusMessage.Close()--Retornar conjunto de datos a su...
--Inicializar grid y crear estilos.With Me.grdProductos.CaptionText = "Lista de productos desglosada".DataSource = GetData...
.HeaderForeColor = Color.WhiteSmoke.LinkColor = Color.Teal.MappingName = "Products".SelectionBackColor = Color.CadetBlue.S...
.Width = 70End WithdgTableStyle1.GridColumnStyles.AddRange _(New DataGridColumnStyle() _{grdColStyle1, grdColStyle2, grdCo...
ConclusionesLa herencia visual .NET es un camino más en el perfeccionamiento para el desarrollo deaplicaciones Windows. Pu...
Upcoming SlideShare
Loading in …5
×

A toda máquina con herencia visual

898 views
804 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
898
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

A toda máquina con herencia visual

  1. 1. A Toda Máquina Con HerenciaVisual .NETFecha: 03/Sep/2005 (31/08/05)Autor: Lic. Giovanni Cuadra ReyesAmericanCollege IT ManagerEmail: giovanni_cuadra@hotmail.com gcuadra@americancollege.edu.ni!!!Tecnología de la Programación!!!Managua, Nicaragua.IntroducciónCuando decidí escribir este artículo acerca de Herencia Visual .NET, estaba trabajandouna aplicación en la cual utilice gran parte herencia de formularios, y fue con elpropósito en dar a conocer una forma más practica en simplificar horas de trabajo en eldiseño de formularios y porque no decirlo en la escritura de código.Si no me falla la memoria en la versión empresarial de Microsoft Visual Basic 6.0,Microsoft presento en los complementos de esta herramienta una forma de reutilizar losformularios a partir de diseños personalizados por el desarrollador o por plantillas que lamisma herramienta traía consigo. De tal forma que podíamos reutilizar formularios ycódigo sin afectar el original y los mismos podíamos convertirlos en plantillas dediseño. Aunque este tipo de implementación esta muy lejos de ser el concepto deHerencia Visual .NET, proporciono en su época los mecanismos para que esta mismafuese implementada en versiones futuras de Visual Studio y totalmente mejorada hastallegar a lo que hoy en día conocemos como Herencia Visual de Formularios Windows.Este artículo esta orientado a lo que es Herencia Visual .NET, como trabaja, como secomportan los formularios heredados con respecto a los formularios bases, como secomportan los métodos y/o eventos en su ejecución y en como estos elementos puedenejecutar código desde una clase base a una clase derivada.Qué es la Herencia Visual de Formularios
  2. 2. La Herencia Visual de Formularios podría definirse como el duplicado de un formularioa partir de otro, denominado original o formulario base o clase base, de otra formadicha, podría también ser definido como una clase derivada de formulario por una clasebase de formulario. El formulario base o clase base, seria de donde se deriva elformulario heredado o clase heredada a la cual se le denomina clase derivada. Por lotanto el formulario base hereda sus características de la clase baseSystem.Windows.Forms.Form, mientras que el formulario derivado, sus característicasson heredadas directamente del formulario base.A continuación muestro un ejemplo de lo anteriormente expuesto: La figura 1.0 Muestra la clase base. La figura 2.0 Muestra la clase derivada.Recordemos que los formularios en VB.NET no son mas que una clase que puedenheredar un nuevo formulario a partir de técnicas estándares de herencia visual. Por lotanto unas de las funcionalidades de la herencia visual es por ejemplo que a partir de un
  3. 3. formulario base se puede representar un tamaño estandar de objetos, como lo sonbotones, cajas de texto y otros controles contenido dentro del mismo. Por el cualcualquier formulario derivado de esa base, tendrá las misma formas de controles ytamaños y posición.Herencia Visual en Microsoft Visual Basic .NETLos diseñadores de formularios Windows soportan herencia de formularios. En eldiseñador, aparece un el menú de proyectos la opción herencia de formularios. Seejecuta esta opción y a continuación se visualiza una pantalla el cual solicita el nombredel nuevo formulario heredado. A continuación muestro el menú para ejecutar la opción: La figura 3.0 Muestra la opción que permite crear un formulario heredado.
  4. 4. La figura 4.0 Muestra las plantilla para herencia de formularios.Todos los eventos manejados que se especifican en el formulario base, automáticamentetrabajan de la misma forma que en los formularios heredados. Por ejemplo, si un botónen un formulario base especifica un evento manejado, dicha de otra forma estaprogramado. En el formulario heredado los botones llaman a los eventos manejados dela clase base. Por lo tanto, si se agrega un evento manejado en la clase heredada para uncomponente en la clase base, ambos eventos son ejecutados, con la diferencia que elevento de la clase base se dispara primero, seguido del evento manejado de la claseheredada.Otro comportamiento interesante es que los eventos manejados del formulario basepueden sobrescribirse, sin embargo para poder cumplir esto, será necesario utilizar lapalabra reservada Overridable en la definición de los eventos manejados de la clasebase y entonces se crea un nuevo método en la clase heredada con la misma lista deparámetros.No se debe utilizar la palabra reservada Handles en los métodos sobrescritos en losformularios heredados. Por lo tanto si se quiere llamar a eventos manejados de unformulario base dentro de un método Overridden se requiere utilizar el objeto MyBasepara acceder al formulario base.Hay que recordar también que la herencia de formularios no es una operación en línea.Por ejemplo, si se actualiza el formulario base con el objetivo en reemplazar objetos, setendrá que ejecutar el depurador con el propósito de actualizar todos los formularios
  5. 5. heredados que provienen del formulario base modificado, dicho de otra forma,recompilar la aplicación nuevamente. Tomando en cuenta que el formulario heredadotiene que estar cerrado.Por último, las propiedades de los formularios heredados pueden ser programados ypersonalizados como las de cualquier otro formulario, todo es que la propiedadModifiers de los controles del formulario base sea cambiada a Protected la cual seria elalcance que tendrían las propiedades del formulario base. Modifierspredeterminadamente se encuentra como Friend el cual especifica que su alcance essolo para la clase base.Implementando una solución con Visual Basic .NETA continuación muestro un ejemplo muy sencillo utilizando herencia visual deformularios. Los siguientes requisitos serán necesarios: Microsoft Visual Basic .NET 2003 Microsoft SQL Server 2000 Microsoft Windows XP o superior Computador Pentium o superior Memória RAM 128 o superior Monitor VGA de ‘’15 o superiorA continuación muestro el siguiente formulario el cual estará definido como elformulario base de la aplicación, así como el código dentro del mismo:Protected Const SQL_INFOCONNECTION As String = _
  6. 6. "Server=localhost;" & _"DataBase=Northwind;" & _"Integrated Security=SSPI"Protected Connect As Boolean = FalseProtected connectionString As String = SQL_INFOCONNECTIONProtected Function GetDataSource() As DataSetStatic ConnectionString As String = SQL_INFOCONNECTIONStatic Connect As Boolean = False--Crear instancia al formulario del status de conexión.Dim frmStatusMessage As New frmStatus--Primera vez que se conecta.If Not Connect Then--Mensaje al usuario de intento de conexión.frmStatusMessage.Show("Conectando con el servidor de datos...")End If--Inicializar el intento de conexión para entrar al ciclo.Dim IsConnecting As Boolean = TrueWhile IsConnectingTry--Inicializar conexión a la base de datos.Dim cnNorthwind As New SqlConnection(ConnectionString)--Ejecutar adaptador con la tabla productos.Dim da As New SqlDataAdapter( _"SELECT ProductID, ProductName, UnitPrice, UnitsInStock " & _"FROM products", cnNorthwind)Dim dsProducts As New DataSet--Inicializar y llenar dataset.dsProducts.Clear()
  7. 7. da.Fill(dsProducts, "Products")IsConnecting = FalseConnect = TruefrmStatusMessage.Close()--Retornar conjunto de datos a su destino.Return dsProductsCatch exc As Exception--Cerrar formulariofrmStatusMessage.Close()--Enviar mensaje al usuario.System.Windows.Forms.MessageBox.Show(exc.Message, "Herencia Visual .NET", _MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)End TryEnd While--Cerrar formulario.frmStatusMessage.Close()End FunctionPrivate Sub btnCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesbtnCerrar.Click--Cerrar el form y terminar la aplicación.Me.Close()EndEnd SubEn el código anterior se crea una función que permite crear conexión con la base dedatos de SQL Server 2000 y la cual enviara el conjunto de datos a un control enlazado.El clic del botón cerrar cierra cualquier formulario heredado, ya que primeramente seejecuta el método clic del formulario base y luego el método clic del formularioheredado.A continuación se muestra el formulario heredado en tiempo de diseño, así como sucódigo :
  8. 8. --Inicializar grid y crear estilos.With Me.grdProductos.CaptionText = "Lista de productos desglosada".DataSource = GetDataSource().Tables(0)End With--Aplicar estilos al grid.Dim dgTableStyle1 As New DataGridTableStyleWith dgTableStyle1.AlternatingBackColor = Color.Red.BackColor = Color.WhiteSmoke.ForeColor = Color.MidnightBlue.GridLineColor = Color.Gainsboro.GridLineStyle = System.Windows.Forms.DataGridLineStyle.None.HeaderBackColor = Color.MidnightBlue.HeaderFont = New Font("Tahoma", 8.0!, FontStyle.Bold)
  9. 9. .HeaderForeColor = Color.WhiteSmoke.LinkColor = Color.Teal.MappingName = "Products".SelectionBackColor = Color.CadetBlue.SelectionForeColor = Color.WhiteSmokeEnd WithDim grdColStyle1 As New DataGridTextBoxColumnWith grdColStyle1.HeaderText = "ID. Producto".MappingName = "ProductID".Width = 50End WithDim grdColStyle2 As New DataGridTextBoxColumnWith grdColStyle2.HeaderText = "Descripción".MappingName = "ProductName".Width = 225End WithDim grdColStyle3 As New DataGridTextBoxColumnWith grdColStyle3.HeaderText = "Precio".MappingName = "UnitPrice".Width = 70End WithDim grdColStyle4 As New DataGridTextBoxColumnWith grdColStyle4.HeaderText = "Cantidad en almacen".MappingName = "UnitsInStock"
  10. 10. .Width = 70End WithdgTableStyle1.GridColumnStyles.AddRange _(New DataGridColumnStyle() _{grdColStyle1, grdColStyle2, grdColStyle3, grdColStyle4})Me.grdProductos.TableStyles.Add(dgTableStyle1)El código anterior tiene dos objetivos. El primero es pasar el conjunto de resultados algrid, dicha información viene desde la función diseñada del formulario base. Estafunción esta declarada como Protected la cual permite un alcance único a clasesderivadas de su propia clase base. La segunda parte es estilizar el grid con colores yformas más vistosas.Como se puede apreciar, hay código dentro del formulario base que es ejecutado y haycódigo dentro del formulario heredado. La diferencia de ambos radica, que el código delformulario base puede ser utilizado en sus clases derivadas en este caso en el formularioheredado con la función que retorna el conjunto de resultados. En el formularioheredado hay código que solamente puede ser ejecutado en el mismo, no en clasesderivadas. Ya que el formulario heredado es una clase derivada.Para finalizar muestro el formulario heredado en tiempo de ejecución:
  11. 11. ConclusionesLa herencia visual .NET es un camino más en el perfeccionamiento para el desarrollo deaplicaciones Windows. Pues con algunas cuantas líneas de código es posible obteneruna aplicación robusta, escalable, ágil que posea las mismas características visuales delresto de formularios utilizados. Minimizando de esta manera el tratamiento y desarrollode formularios y controles para la misma.Cada aplicación bien desarrollada es sinónimo de solución. Y cada solución esTamaño 65 KB

×