我目前正在尝试将我的一些代码与我的主窗体分开,并创建类文件来处理某些操作。我已经读到将类绑定到UI并不是一个好习惯,所以我想知道如何仍然返回有关课堂上发生的事件进展的信息。当代码出现在主窗体中时,我会将函数的状态更新写入文本框,以便用户可以知道发生了什么。
如何通过主窗体从类中更新用户的例程状态?
答案 0 :(得分:8)
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 );
}
}
主表单可以订阅“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" );
}
}
答案 1 :(得分:0)
您可以在工人类上定义“StatusChanged”事件。然后,UI类可以注册该事件,并采取所需的任何操作来通知用户。