我目前正试图将我的一些代码与我的主窗体分开,并创建类文件来处理一些操作.我已经读到将类绑定到UI并不是一个好习惯,所以我想知道如何仍然返回有关课堂上发生的事件进展的信息.当代码出现在主窗体中时,我会将函数的状态更新写入文本框,以便用户可以知道发生了什么.
如何通过主窗体从类更新用户的例程状态?
class Foo
{
public event EventHandler DidSomething = delegate { };
public void DoSomething( )
{
// do stuff, fire event
OnDidSomething( EventArgs.Empty );
}
protected virtual void OnDidSomething( EventArgs e )
{
DidSomething( this, e );
}
}
Run Code Online (Sandbox Code Playgroud)
主表单可以订阅"DidSomething"事件并根据需要采取措施.
public class Form1 : Form
{
public Form1( )
{
Foo f = new Foo( )
f.DidSomething += f_DidSomething;
f.DoSomething( );
}
void f_DidSomething( object sender, EventArgs e )
{
MessageBox.Show( "Event Fired" );
}
}
Run Code Online (Sandbox Code Playgroud)