0
Toute façon de simplifier ce code de travail, c'est-à-dire le délégué {}?Événements WinForm dans une autre classe .NET2 Simplify delegate
public partial class Form1 : Form
{
private CodeDevice codeDevice;
public Form1()
{
InitializeComponent();
codeDevice = new CodeDevice();
//subscribe to CodeDevice.ConnectionSuccessEvent and call Form1.SetupDeviceForConnectionSuccessSate when it fires
codeDevice.ConnectionSuccessEvent += new EventHandler(SetupDeviceForConnectionSuccessState);
}
private void SetupDeviceForConnectionSuccessState(object sender, EventArgs args)
{
MessageBox.Show("It worked");
}
private void button1_Click(object sender, EventArgs e)
{
codeDevice.test();
}
}
public class CodeDevice
{
public event EventHandler ConnectionSuccessEvent = delegate { };
public void ConnectionSuccess()
{
ConnectionSuccessEvent(this, new EventArgs());
}
public void test()
{
System.Threading.Thread.Sleep(1000);
ConnectionSuccess();
}
}
WinForm event subscription to another class
How to subscribe to other class' events in c#?
Merci @Ben - que je ne suis pas en utilisant l'objet, pas les args juste essayé un autre qui est ConnectionSuccess (null, null). Cependant vif comme ci-dessus pour l'instant. –
Le problème avec ConnectionSuccess (null, null) est que vous avez ajouté l'hypothèse que l'expéditeur ou le eventargs ne sera jamais référencé. Un autre développeur a peut-être écrit une méthode souscrite à cet événement et a utilisé ces paramètres, ce qui a provoqué une exception de référence nulle. 'ConnectionSuccessEvent (this, new EventArgs());' ou 'ConnectionSuccessEvent (this, EventArgs.Empty);' sont meilleurs. –