在对您的应用程序了解不够的情况下,我建议您需要在由表单处理的类中调用一个事件。发生的事情是这样的:
- 班级有一个事件。
- Form 启动并实例化类。
- Form 为类中的事件分配一个处理程序。
- 类做它需要做的任何事情,直到它到达它需要与表单通信的点。
- 班级引发事件。
- 表单中的处理程序被执行并且文本框发生变化。
所以在类的代码中你需要添加一些定义:
public delegate void FinishedEventHandler(object sender, string ValueToReturn);
public event FinishedEventHandler Finished;
第一个是带有事件签名的委托。按照惯例,第一个参数始终是对类本身实例的引用,其余的是您要返回的值。第二个是实际事件。
现在,在对类进行任何处理的函数中,我们需要在适当的时候引发事件:
void DoSomething()
{
.
.
.
if(Finished!=null) Finished(this, "some value");
}
if 子句用于确保确实有人在处理我们的事件,否则我们可能会遇到异常。
现在让我们看一下表格。我们需要添加一个处理事件的函数。它需要与我们之前定义的委托具有相同的签名。在该函数中,我们根据返回的值对表单进行所需的任何更改:
private void FinishedEventHandler(object sender, string ValueToReturn)
{
TextBox1.Text = ValueToReturn;
}
现在我们已经准备好使用我们刚刚创建的所有管道。首先我们将处理程序添加到事件中,然后我们可以调用类的处理函数。
MyClass.Finished += FinishedEventHandler;
MyClass.DoSomething();
这里有更详细的教程:
http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx