static class Program { // structure de données simulant une base partagée public static DataStruct Data = new DataStruct(); // Signature de l'evenement de m.à.j public delegate void MajEventDelegate(Form sender); // evenement de m.à.j public static event MajEventDelegate MajEvent; //methode de lancement de l'evenement accessible de l'exterieur public static void RaiseMajEvent(Form sender) { if (MajEvent!=null) MajEvent(sender); }
//Methode de mise à jour des données affichées sur la form private void MajForm() { labelDateMaj.Text = Program.Data.DateMaj.ToString(); textBox1.Text = Program.Data.Text; } //Methode de mise à jour des données du referentiel private void MajData() { Program.Data.Text =textBox1.Text ; //Lancement de l'evenement de màj Program.RaiseMajEvent(this); }
// initialisation d'une form fille public Form1() { InitializeComponent(); //Abonement à l'évenement de MAJ Program.MajEvent += new Program.MajEventDelegate(Program_MajEvent); // mettre à jour les données affichées sur la form MajForm(); } //Reception de l'evenement de mise à jour void Program_MajEvent(Form sender) { //une modification à eu lieu, rafraichir les données affichées MajForm(); }
//exemple de referentiel de données public class DataStruct { private string _text = ""; private DateTime _datemaj=DateTime.Now; public string Text { get { return _text; } set { _text = value; _datemaj = DateTime.Now; } } public DateTime DateMaj { get { return _datemaj; } } };
//Reception de l'evenement de mise à jour void Program_MajEvent(Form sender) { //inutile de traiter les evenements emis par moi-même ;-) if (sender == this) return; //une modification à eu lieu, rafraichir les données affichées MajForm(); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question