Los controles de usuario se definen para reutilizar en diversos formularios, estos controles de usuario funcionan bajo el concepto de reutilización de funcionalidad. Para crear un control de usuario.
- Agregar un nuevo elemento a la solución.
- Seleccionar plantilla de control de usuario web y definir este archivo con el nombre de CalculadoraControl.ascx, incluyendo los siguientes controles:
lblPimero, Text = Primer Número.
lblSegundo, Text = Segundo Número
txtPrimero
txtSegundo
btnCalcular, Text = Calcular.
Quedando de la siguiente forma:
- Crear un formulario con el nombre frmCalcular.
- Agregar el control de usuario CalculadoraControl.ascx al formulario frmCalcular.aspx
- Agregar al formulario frmCalcular un Label.
Existen dos formas de definir el lanzamiento de eventos para que sean capturados en las páginas principales a las que se va a anexar el control, estas son: Utilizando Propiedades y Utilizando delegados y eventos.
Propiedades
Crearemos una propiedad pública dentro del control CalculadoraControl.ascx con las siguientes líneas de código:
Public ReadOnly Property resultado()
Get
Dim uno As Integer = Integer.Parse(Me.txtPrimero.Text)
Dim dos As Integer = Integer.Parse(Me.txtSegundo.Text)
Dim res As Integer = uno + dos
Return res
End Get
End Property
Agregar el control a un nuevo formulario y definir este como formulario de inicio, el formulario tendrá el nombre de frmCalcular.aspx.
En el método que captura el evento load del formulario frmCalcular.aspx, agregar las siguientes líneas de código
If Page.IsPostBack Then
Dim res As Integer = Me.CalculadoraControl1.resultado
Me.Label1.Text = "El resultado es " + res.ToString()
End If
Utilizando Eventos y delegados.
Antes de realizar los cambios para trabajar con eventos y delegados, debemos comentariar la propiedad definida en el control antes creado.
- Dentro del editor de código del control CalculadoraControl agregaremos las siguientes líneas de código:
Public Delegate Sub MiResultadoHandler(ByVal resultado As Integer)
- Ahora, crearemos una variable de tipo evento que será del tipo delegado, como se muestra a continuación:
Public Event MiResultado As MiResultadoHandler
- En el método que captura el evento clic del botón btnCalcular, agregar las siguientes líneas de código:
Dim uno As Integer = Integer.Parse(Me.txtPrimero.Text)
Dim dos As Integer = Integer.Parse(Me.txtSegundo.Text)
Dim res = uno + dos
RaiseEvent MiResultado(res)
- En el formulario frmCalcular.aspx, en el método que captura el evento load del mismo, agregar las siguientes líneas de código:
AddHandler CalculadoraControl1.MiResultado, AddressOf ObtenerResultado
Crearemos el siguiente método que cargará la información al label que se ha incluido:
Public Sub ObtenerResultado(ByVal res As Integer)
Me.Label1.Text = "El resultado es " + res.ToString()
End Sub
No hay comentarios:
Publicar un comentario