Anda di halaman 1dari 11

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE CIENCIAS FISICAS Y


MATEMATICAS
CARERRA DE ING. EN SISTEMAS
COMPUTACIONALES

PROGRAMACION III
TEMA: USER CONTROL
PREFESOR: ING. MIGUEL ALFONSO MOLINA
CALDERON

NOMBRES: JIMMY CARAGUAY –

CURSO: S3C

CICLO 1 - - 2016
USER CONTROL
Los controles de usuario proporcionan un medio para crear y reutilizar interfaces
gráficas de usuario. Un control de usuario es esencialmente un componente con una
representación visual. Como tal, puede constar de uno o más controles de
formularios Windows Forms, componentes o bloques de código, que pueden
extender su funcionalidad mediante la validación de la entrada del usuario, la
modificación de las propiedades de presentación o la ejecución de otras tareas
requeridas por su autor. Los controles de usuario pueden incluirse en formularios
Windows Forms de la misma manera que los demás controles.

¿Por qué hacemos el control de usuario: Esto proporciona la reutilización


flexibilidad adicional con proyecto web a gran escala. También es ayudar a encontrar
errores y resolver error en poco tiempo. Si usted quiere algunos cambios en su
código a continuación, usted tiene que escribir código en un solo lugar (control de
usuario) tal efecto en cada formulario web o cualquier forma de aplicación de
ventana. Usando esta técnica puede guardar su esfuerzo extra y también ahorrar su
tiempo.
Se creará un control de usuario sencillo denominado ctlClock. En la segunda parte,
ampliará la funcionalidad de ctlClock a través de herencia.

CREAR EL PROYECTO
Cuando cree un nuevo proyecto, debe establecer el espacio de nombres de la raíz,
el nombre de ensamblado y el de proyecto, además de asegurarse de que el
componente predeterminado estará en el espacio de nombres correcto.
Para crear la biblioteca de controles ctlClockLib y el control ctlClock

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. Seleccione la plantilla de proyecto Biblioteca de controles de Windows en
la lista de Proyectos deC# y escriba ctlClockLib en el cuadroNombre.

El nombre del proyecto, ctlClockLib, se asigna también de forma


predeterminada al espacio de nombres de la raíz. El espacio de nombres de
la raíz se utiliza para calificar los nombres de los componentes del
ensamblado. Por ejemplo, si dos ensamblados proporcionan componentes
denominados ctlClock, puede especificar el componente ctlClock
mediante ctlClockLib.ctlClock. En el Explorador de soluciones, haga
clic con el botón secundario del mouse (ratón) en UserControl1 y
seleccione Ver código en el menú contextual.

3. Busque la instrucción Class, public class UserControl1 y


cambie UserControl1 a ctlClock para cambiar el nombre del componente.

Nota De manera predeterminada, un control de usuario hereda de


la clase UserControl proporcionada por el sistema. La
claseUserControl proporciona la funcionalidad necesaria para todos
los controles de usuario e implementa métodos y propiedades
estándar.

4. Busque el constructor, public UserControl1(), y cambie UserControl1 a


ctlClock.
5. En el Explorador de soluciones, haga clic en UserControl1, a continuación,
en la ventana Propiedades cambie la propiedad FileName actlClock.cs.
6. En el menú Archivo, elija Guardar todo para guardar el proyecto.

AGREGAR CONTROLES Y COMPONENTES DE WINDOWS AL


CONTROL DE USUARIO
Una parte esencial del control de usuario es una interfaz visual. Esta interfaz visual
se implementa mediante la adición de uno o más controles de Windows al Diseñador
de controles de usuario. En la demostración siguiente, incorporará controles de
Windows al control de usuario y escribirá código para implementar funcionalidad.
Para agregar un control Label y un componente Timer al control de usuario

1. En el Explorador de soluciones, haga clic con el botón secundario


en ctlClock.cs y elija Diseñador de vistas.
2. En el Cuadro de herramientas, haga clic en la ficha Windows Forms y, a
continuación, haga doble clic en label.

En el Diseñador de controles de usuario, se agregará al control un control


de etiqueta denominado label1.

3. En el diseñador, haga clic en label1. En la ventana Propiedades, establezca las


propiedades siguientes:
4. En el Cuadro de herramientas, haga clic en la ficha Windows Forms y, a
continuación, haga doble clic en Timer.

Dado que un temporizador es un componente, no tiene representación visual


en tiempo de ejecución. En consecuencia, no aparece con los controles en
el Diseñador de controles de usuario, sino en la bandeja de componentes.

5. En la bandeja de componentes, haga clic en timer1, establezca la


propiedad Interval como 1000 y la propiedad Enabled como True.

La propiedad Interval controla la frecuencia con la que se incrementa el valor


del componente temporizador. A cada paso de timer1, se ejecuta el código
del evento timer1_Tick. El intervalo representa el número de milisegundos
entre paso y paso.

6. En la bandeja de componentes, haga doble clic en timer1 para ir al


evento timer1_Tick de ctlClock.
7. Modifique el código de modo que se asemeje al siguiente ejemplo: Asegúrese
de cambiar el modificador de acceso de Private a Protected:

protected void timer1_Tick(object sender, System.EventArgs e)


{
// Causes the label to display the current time
lblDisplay.Text = DateTime.Now.ToLongTimeString();
}
Este código hace que se muestre la hora actual en lblDisplay. Dado que el
intervalo de timer1 se estableció en 1000, este evento se activará cada mil
milisegundos, por lo que la hora se actualizará cada segundo.

8. Modifique el método para que pueda reemplazarse, mediante la palabra


clave virtual. Para obtener más información, vez la siguiente sección de este
tema, "Heredar de un control de usuario".
protected virtual void timer1_Tick(object sender, System.EventArgs
e)

9. En el menú Archivo, elija Guardar todo para guardar el proyecto.

AGREGAR PROPIEDADES AL CONTROL DE USUARIO


El control de reloj encapsula ahora un control Label y un componente Timer, cada
uno con su propio conjunto de propiedades inherentes. Aunque las propiedades
individuales de estos controles no estarán disponibles para los futuros usuarios del
control, puede crear y exponer propiedades personalizadas escribiendo los bloques
de código adecuados. En la sección siguiente, agregará al control propiedades que
permiten que el usuario cambie el color del fondo y del texto.
Para agregar una propiedad al control de usuario

1. En el Explorador de soluciones, haga clic en ctlClock.cs con el botón


secundario del mouse (ratón) y elija Ver código en el menú contextual.

Se abrirá el Editor de código para el control.

2. Busque la instrucción public class ctlClock. Tras el carácter { de


apertura, escriba:

private Color colFColor;


private Color colBColor;

3. Estas instrucciones crean las variables privadas que se utilizarán para


almacenar los valores de las propiedades que va a crear.
4. Escriba el código siguiente bajo las declaraciones de variables del paso 2:

// Declares the name and type of the property.


public Color ClockBackColor
// Retrieves the value of the private variable colBColor.
{
get
{
return colBColor;
}
// Stores the selected value in the private variable colBColor,
and
// updates the backcolor of the label control lblDisplay.
set
{
colBColor = value;
lblDisplay.BackColor = colBColor;
}
}
// Provides a similar set of instructions for the forecolor.
public Color ClockForeColor
{
get
{
return colFColor;
}
set
{
colFColor = value;
lblDisplay.ForeColor = colFColor;
}
}
El código anterior crea dos propiedades personalizadas, ClockForeColor y
ClockBackColor, disponibles para posteriores usuarios de este control. Las
instrucciones get y set permiten el almacenamiento y la recuperación del
valor de la propiedad; además, proporcionan el código necesario para
implementar la funcionalidad adecuada para la propiedad.

5. En el menú Archivo, elija Guardar todo para guardar el proyecto.

PROBAR EL CONTROL
Los controles no son aplicaciones independientes; deben alojarse en un contenedor.
Para probar el control, deberá proporcionarle un proyecto de prueba dentro del cual
se ejecutará. En esta sección, generará el control y lo probará en un formulario
Windows Forms.
Para generar el control

 En el menú Generar, haga clic en Generar.

Para crear un proyecto de prueba

1. En el menú Archivo, seleccione Agregar proyecto y, a continuación, haga


clic en Nuevo proyecto para abrir la ventana Agregar nuevo proyecto.
2. Haga clic en Aplicación para Windows y en el cuadro Nombre, escriba Test.
3. En el Explorador de soluciones, haga clic con el botón secundario
del mouse (ratón) en el nodo References del proyecto de prueba. Haga clic
en Agregar referencia para mostrar el cuadro de diálogo Agregar
referencia.
4. Haga clic en la ficha con la etiqueta Proyectos. El proyecto aparecerá en la
lista Nombre de proyecto.
5. Haga doble clic en el proyecto.
Observe que el proyecto aparece ahora en la ventana Componentes
seleccionados.
Tras haber agregado la referencia, puede colocar el control en el formulario.
Para probar el control

1. En el Cuadro de herramientas, haga clic en Mis controles de usuario y, a


continuación, desplácese hasta que se muestre el icono de control que
representa ctlClock.
2. Haga doble clic en el icono ctlClock.

Se agregará al formulario una copia del control. Observe que muestra la hora
actual y que se actualiza cada segundo.

3. En el Cuadro de herramientas, seleccione el icono y mueva el mouse sobre


el formulario.
4. Mantenga presionado el botón primario del mouse mientras lo mueve por el
formulario.

En el formulario se dibujará otra copia del control. Puede agregar al


formulario tantas copias del temporizador como desee.

5. En el diseñador, haga clic en una de las instancias de ctlClock.

Aparecerán las propiedades de esta instancia en la ventana Propiedades.

6. En la ventana Propiedades, busque la propiedad ClockBackColor y, a


continuación, seleccione la propiedad para mostrar la paleta de colores.
7. Haga doble clic en un color para elegirlo.

El color de fondo del control cambiará al color seleccionado.

8. Utilice una secuencia de eventos parecida para comprobar que la


propiedad ClockForeColor funciona según lo esperado.

En esta sección vio cómo se pueden combinar componentes y controles de Windows


con código y empaquetamiento para ofrecer funcionalidad personalizada en forma
de control de usuario. Aprendió a exponer propiedades en el control de usuario, así
como a probar el control una vez terminado. En la sección siguiente aprenderá a
construir un control de usuario heredado que utilice ctlClock como base.
HEREDAR DE UN CONTROL DE USUARIO
En la sección anterior, aprendió a combinar controles de Windows, componentes y
código en controles de usuario reutilizables. Ahora puede utilizar el control de
usuario como base a partir de la cual se generarán otros controles. El proceso de
derivación de una clase a partir de una clase base se denomina herencia. En esta
sección, creará un control de usuario denominado ctlAlarmClock. Este control se
derivará de su control principal, ctlClock. Aprenderá a ampliar la funcionalidad de
ctlClock reemplazando los métodos principales y agregando métodos y
propiedades nuevos.
Crear el control heredado
El primer paso para crear un control heredado es derivarlo de su control primario.
Esta acción crea un nuevo control que tiene todas las propiedades, métodos y
características gráficas del control primario, pero que también actúa como base
para la adición de funcionalidad nueva o modificada.
Para crear el control heredado

1. Haga clic en ctlClockLib del Explorador de soluciones.


2. En el menú Proyecto, elija Agregar control heredado.

Se abrirá la ventana Agregar nuevo elemento, con Control de usuario


heredado seleccionado.

3. En el cuadro Nombre, escriba ctlAlarmClock.cs y haga clic en Abrir.

Aparecerá la ventana Selector de herencia.

4. En Nombre de componente, haga doble clic en ctlClock.


5. En el Explorador de soluciones, examine los proyectos actuales. Observe que
se agregó un archivo denominado ctlAlarmClock.

Agregar las propiedades de alarma


Las propiedades se agregan a un control heredado del mismo modo que se
agregan a un control de usuario. Ahora utilizará la sintaxis de declaración de
propiedades para agregar dos propiedades al control: AlarmTime, que almacenará
el valor de fecha y hora en que se activará la alarma yAlarmSet, que indica si está
establecida o no la alarma.
Para agregar propiedades al control de usuario

1. En el Explorador de soluciones, haga clic en ctlAlarmClock con el botón


secundario del mouse (ratón) y elija Ver código.
2. Busque la instrucción public class. Tenga en cuenta que el control se
hereda de ctlClockLib.ctlClock. Debajo de la instrucción {, escriba el
siguiente código:

private DateTime dteAlarmTime;


private bool blnAlarmSet;
// These properties will be declared as public to allow future
// developers to access them.
public DateTime AlarmTime
{
get
{
return dteAlarmTime;
}
set
{
dteAlarmTime = value;
}
}
public bool AlarmSet
{
get
{
return blnAlarmSet;
}
set
{
blnAlarmSet = value;
}
}
Agregar a la interfaz gráfica del control de usuario
El control heredado tiene una interfaz visual idéntica al control del que se heredó.
Posee los mismos controles constituyentes que su control primario, pero las
propiedades de los controles constituyentes no estarán disponibles a menos que se
expusieran específicamente. Puede efectuar adiciones a la interfaz gráfica de un
control de usuario heredado de la misma forma en que lo haría con cualquier control
de usuario. Para continuar realizando adiciones a la interfaz visual del reloj de alarma,
agregará un control de etiqueta que parpadeará cuando suene la alarma.
Para agregar el control de etiqueta

1. En el Explorador de soluciones, haga clic en ctlAlarmClock con el botón


secundario del mouse (ratón) y elija Diseñador de vistas en el menú
contextual.

En la ventana principal se abrirá el diseñador para ctlAlarmClock.


2. Haga clic en la zona de presentación del control y observe la ventana
Propiedades.

Observe que, aunque se muestran todas las propiedades, están atenuadas.


Esto indica que estas propiedades son nativas de lblDisplayy que no pueden
modificarse ni se puede tener acceso a ellas en la ventana de propiedades. De
forma predeterminada, los controles contenidos en un control de usuario
son private y no es posible tener acceso a sus propiedades por ningún medio.

Sugerencia Si desea que los futuros usuarios del control de usuario tengan
acceso a sus controles internos, declárelos comopublic o protected. Esto le
permitirá establecer y modificar las propiedades de los controles contenidos
en el control de usuario, mediante el código adecuado.

3. Agregue un control Label al control de usuario.


4. Por medio del mouse, lleve el control de etiqueta a justo debajo del cuadro
de presentación. En la ventana Propiedades, defina las propiedades siguientes:

Agregar la funcionalidad de alarma


En las secciones anteriores, agregó propiedades y un control que habilitará la
funcionalidad de alarma en el control de usuario. En esta sección, agregará código
para comparar la hora actual con la hora de alarma y, si son iguales, hacer que
parpadee una alarma. Si reemplaza el métodotimer1_Tick de ctlClock y le agrega
código adicional, extenderá la capacidad de ctlAlarmClock al mismo tiempo que
conserva toda la funcionalidad inherente de ctlClock.

BIBLIOGRAFIA

 https://msdn.microsoft.com/es-es/library/cc438236(v=vs.71).aspx
 http://www.c-sharpcorner.com/UploadFile/7d3362/user-control-in-C-Sharp/
 http://www.ehu.eus/mrodriguez/archivos/Articulos_alumnos/Control%20per
sonalizado,%20velocimetro%20con%20CSharp.pdf

Anda mungkin juga menyukai