Foros del Web » Programación para mayores de 30 ;) » .NET »

Herencia Visual

Estas en el tema de Herencia Visual en el foro de .NET en Foros del Web. Hola Estuve probando la Herencia visual en C#, y lo que deseo hacer es definir la apariencia visual de un form base utilizando luego para ...
  #1 (permalink)  
Antiguo 14/05/2003, 07:41
 
Fecha de Ingreso: noviembre-2002
Mensajes: 539
Antigüedad: 21 años, 5 meses
Puntos: 1
Pregunta Herencia Visual

Hola
Estuve probando la Herencia visual en C#, y lo que deseo hacer es definir la apariencia
visual de un form base utilizando luego para crear varios forms,les agrego botones
imagenes,etc y desearia luego utilizar otro form, heredar el aspecto visual
del primero y codificar los botones o lo que haga falta.
Pero en C# al definir un form base y derivar otro por herencia visual, no logro codificar los
botones definidos en el form base (por supuesto que si puedo codificar si agrego nuevos en el
form derivado). Se entiende?

Como puedo lograr codificar controles en un form derivado por herencia visual?

Salu2
Pedro
  #2 (permalink)  
Antiguo 14/05/2003, 10:30
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antigüedad: 23 años, 1 mes
Puntos: 0
Hola Pedro:

Aqui un ejemplo de la ayuda de vs.net:

// cs_override_keyword.cs
// Calling overriden methods from the base class
using System;
class TestClass
{
public class Square
{
public double x;

// Constructor:
public Square(double x)
{
this.x = x;
}

public virtual double Area()
{
return x*x;
}
}

class Cube: Square
{
// Constructor:
public Cube(double x): base(x)
{
}

// Calling the Area base method:
public override double Area()
{
return (6*(base.Area()));
}
}

public static void Main()
{
double x = 5.2;
Square s = new Square(x);
Square c = new Cube(x);
Console.WriteLine("Area of Square = {0:F2}", s.Area());
Console.WriteLine("Area of Cube = {0:F2}", c.Area());
}
}
  #3 (permalink)  
Antiguo 15/05/2003, 07:20
 
Fecha de Ingreso: noviembre-2002
Mensajes: 539
Antigüedad: 21 años, 5 meses
Puntos: 1
Herencia Visual

Hola Henry

Gracias por tu respuesta.
Lo que estoy buscando es la manera de crear un form generico, mediante el diseñador, que incluya un toolbar y unos botones basicos.
A partir de este formulario deseo usar la opcion de inherit form que incorpora C# para derivar otros forms que aprovechen lo hecho en el primero.
Esto ya lo hice, el problema es que al form derivado no puedo codificarlo en ese toolbar y botones... (que incorpora el form base)solo puedo codificar en controles nuevos agregados a ese form.

Salu2
Pedro
  #4 (permalink)  
Antiguo 15/05/2003, 08:19
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antigüedad: 23 años, 1 mes
Puntos: 0
Hola Pedro:

si entendi tu pregunta.

Asi como en el ejemplo, tienes que colocar el keyword virtual, abstract, u override al metodo de tu formulario base generador por el visual studio, y en el que quieras sobreescribir colocar override como por ejemplo:

En el formulario Base:

public virtual void btnEjecutar_Click(object sender, System.EventArgs e) {
MessageBox.Show("Ejecutando Script de Formulario Base");
}

En el formulario Heredado:
public override void btnEjecutar_Click(object sender, System.EventArgs e) {
MessageBox.Show("Ejecutando Script de Formulario Heredado");
}

En el formulario base tienes que declarar todos los metodos que sera sobreescritos en los formularios heredados. Solo declaralos pues la implementación lo haras en cada formulario herededado según la logica para cada uno de ellos.

Explicación del Help:

Use the override modifier to modify a method or a property. An override method provides a new implementation of a member inherited from a base class. The method overridden by an override declaration is known as the overridden base method. The overridden base method must have the same signature as the override method.

You cannot override a non-virtual or static method. The overridden base method must be virtual, abstract, or override.

An override declaration cannot change the accessibility of the virtual method. Both the override method and the virtual method must have the same access level modifier.


saludos..

Última edición por Henry Zapata; 15/05/2003 a las 08:35
  #5 (permalink)  
Antiguo 16/05/2003, 07:43
 
Fecha de Ingreso: noviembre-2002
Mensajes: 539
Antigüedad: 21 años, 5 meses
Puntos: 1
De acuerdo Funciono !!

Funciono de maravillas

Muchas Gracias

Pedro

Última edición por PedroK; 16/05/2003 a las 07:43
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 10:32.