===== Événements =====
Vous avez un objet qui doit vous renvoyer une information. Exemple un client doit se connecter à un serveur et vous souhaitez recupérer l'information qu'il s'est connecté.
Voici un petit exemple.
La premiere chose à faire est dans la classe de votre objet de créer le ou les évenements.
Cette événement renverra un argument herité de EventArgs. Il est possible de passer n'importe quelle variable que l'on souhaite
class Client
{
public event EventHandler ClientConneted;
protected virtual void OnClientConnected(ConnectedEventArgs e)
{
if (ClientConneted != null) ClientConneted(this, e);
}
public Client()
{
}
public void Connect()
{
//Procédure de connexion ....
// Si connecté :
//Déclenchement de l'évenement
OnClientConnected(new ConnectedEventArgs("Connexion OK !",14));
}
}
//Classe de l'argument de l'evement
public class ConnectedEventArgs : EventArgs
{
internal string m_msg; //Un parametre quelconque passé
internal int m_val;
public ConnectedEventArgs(string msg, int val)
{
m_msg = msg;
m_val = val;
}
}
Une fois que vous avez créé votre événement dans votre objet, il faut que votre application s'abonne à cette événement :
class Client
{
Client clt = new Client();
public Form1()
{
InitializeComponent();
//Abonnement à l'évenement
clt.ClientConneted += new EventHandler(clt_ClientConneted);
//Lancement de la précudure de connexion qui déclenchera l'évenement
clt.Connect();
}
///
/// Methode qui sera executé au déclenchement de l'évenement
///
///
///
private void clt_ClientConneted(object sender, ConnectedEventArgs e)
{
MessageBox.Show("Client connecté, argument: " + e.m_msg + " val: " + e.m_val);
}
}