Cita:
Iniciado por alexg88 Buenas, te dejo un ejemplo:
Lo primero que debes hacer es crear una clase derivada de EventArgs, para pasar los argumentos (se puede obviar este paso si no se quieren pasar argumentos).
En el caso del ejemplo usamos la clase ya definida EventArgs.
Código C#:
Ver originalusing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace PruebasTablas
{
//Se especifica el delegado para el evento
public delegate void ValorCambiadoEventHandler(object sender,EventArgs e);
public partial class Alarma : UserControl
{
/*
Se crea una clase que define el evento, que si te fijas utiliza el delegado anteriormente creado
*/
public event ValorCambiadoEventHandler ValorCambiado;
/*
* Método desde el cual se genera el evento
*/
private void OnValorCambiado(object sender,EventArgs e)
{
if (ValorCambiado != null)
{
ValorCambiado(this, e);
}
}
private void form_Changed(object sender, EventArgs e)
{
MessageBox.Show("Se envío el evento desde el objeto de tipo: "+sender.GetType());
}
public Alarma()
{
InitializeComponent();
/*Aquí le estás indicando que cuando se dispare el evento CheckedChanged del checkbox se ejecute la función OnValorCambiado, la cual a su vez dispara el evento que tu quieres en UserControl
*/
checkBox1.CheckedChanged += new EventHandler(OnValorCambiado);
/*Aquí indicas que método se ejecuta cuando se dispara el evento ValorCambiado del UserControl*/
this.ValorCambiado += new ValorCambiadoEventHandler(form_Changed);
}
}
}
Gracias por la respuesta me fue de utilidad, tambien encontre otra forma de implementarlo en VB. NET,
Código vb:
Ver originalclass Control
Public Event CheckedObs(ByVal sender As System.Object, ByVal value As Boolean)
'Evento del checkbox donde se desencadena el evento publico
Public Sub chkSeleccionar_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkSeleccionar.CheckedChanged
RaiseEvent CheckedObs(Me, Me.chkSeleccionar.Checked)
End Sub
End class