creation_et_abonnement_eventarg_personnalise
É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
- |Exemple d'evenement Classe Client
class Client { public event EventHandler<ConnectedEventArgs> 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 :
- |Exemple d'evenement Abonnement et déclenchement
class Client { Client clt = new Client(); public Form1() { InitializeComponent(); //Abonnement à l'évenement clt.ClientConneted += new EventHandler<ConnectedEventArgs>(clt_ClientConneted); //Lancement de la précudure de connexion qui déclenchera l'évenement clt.Connect(); } /// <summary> /// Methode qui sera executé au déclenchement de l'évenement /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void clt_ClientConneted(object sender, ConnectedEventArgs e) { MessageBox.Show("Client connecté, argument: " + e.m_msg + " val: " + e.m_val); } }
creation_et_abonnement_eventarg_personnalise.txt · Dernière modification : 2017/12/06 16:13 de 127.0.0.1