У меня есть образец формы с 3 окнами.В каждом окне есть метка, а в главной форме есть кнопка.
У меня есть класс со следующим кодом:
public class CustomEventArgs : EventArgs
{
public string Message { get; set; }
public CustomEventArgs(string message)
{
Message = message;
}
}
public delegate void CustomEventHandler(object sender, CustomEventArgs args);
public class EventCode
{
public void Process()
{
var cea = new CustomEventArgs("I was processed");
if (MyEvent != null)
{
MyEvent.Invoke(this, cea);
}
}
public event CustomEventHandler MyEvent;
}
В главной форме я собираюсь нажать кнопку ипусть он обрабатывает код в моем классе EventCode, а затем вызывает событие.Я хочу, чтобы событие отправило сообщение на обе открытые формы, которые затем отобразят сообщение на экране.
Вот мой код нажатия кнопки в Форме1:
private void Form1_Load(object sender, EventArgs e)
{
Window1 w1 = new Window1();
w1.Show();
Window2 w2 = new Window2();
w2.Show();
}
private void button1_Click(object sender, EventArgs e)
{
EventCode ec = new EventCode();
ec.Process();
}
ВОкно 1:
EventCode ec = new EventCode();
public Window1()
{
InitializeComponent();
ec.MyEvent += new CustomEventHandler(ec_MyEvent);
}
void ec_MyEvent(object sender, CustomEventArgs args)
{
label1.Text = args.Message;
}
Повторяется для Окна 2
Когда я нажимаю на кнопку, подписка на событие не отображает текст на каждой из форм.Если я создаю подписку на событие в главной форме, она будет отображаться.
Я не уверен, какой путь выбрать, чтобы эта функция работала.
Мысли?