>Salve ragazzi,
Ciao!
>vorrei creare un evento personalizzato che si attivi al "change"
>di una determinata proprietà di un oggetto. Per esempio come
>creare l'evento "Click" per un pulsante. Nel mio caso l'evento
>sarebbe "MyEvent" personalizzato :-). Come posso fare?
Ho scritto due righe di codice, spero possano esserti di aiuto:
namespace prova
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Classe classe = new Classe();
classe.myEvent += new MyEventHandler(classe_myEvent);
classe.Proprietà = 5;
}
void classe_myEvent(object sender, MyEventArgs e)
{
MessageBox.Show(e.Testo);
}
}
//Dichiari il tipo di delegato con nome e tipo di parametri
public delegate void MyEventHandler(object sender, MyEventArgs e);
//Dichiari la tua classe che deriva da EventArgs e ci metti le proprietà che ti servono
public class MyEventArgs : EventArgs
{
String _testo;
public String Testo
{
get { return _testo; }
set { _testo = value; }
}
public MyEventArgs(String testo)
{
this._testo = testo;
}
}
class Classe
{
//Dichiari l'evento
public event MyEventHandler myEvent = null;
int _proprietà;
public int Proprietà
{
get { return _proprietà; }
//al momento del set richiami l'evento
set
{
_proprietà = value;
onMyEvent();
}
}
private void onMyEvent()
{
if (myEvent != null)
{
//Istanzi la classe MyEventArgs con i parametri che ti servono
myEvent(this, new MyEventArgs("ciao"));
}
}
}
}
Se hai bisogno di altri chiarimenti chiedi pure
Riccardo