C#回调问题

时间:2009-10-16 15:08:32

标签: c# callback

我有一个带回调的prioblem因为我的Form1打开Form2并在将此信息返回到另一个表单后将数据发送到Form2 ...请帮助

我可以将对象从form1发送到form2,但是form2方法的结果必须通过回调返回到另一个表单(示例表单3)。

我希望你理解我的问题..

3 个答案:

答案 0 :(得分:1)

您有多个表单在同一数据上运行这一事实意味着更好的选择是将该数据封装在一组“模型”类中,这些类可以处理向表单分发信息并将任何更改保存为存储必要的。

这样做的好处是,当您有多个需要处理相同数据的表单时,可以在模型对象上发布回调以进行更改通知。每个表单都订阅它关心的模型中的事件,这意味着任何数量的表单都可以操作您的模型,并且所有表单都可以通过对通知作出反应来维持当前状态。

这种方式何时不关心哪些表单正在操作数据,并且在启动新表单时不需要传递除模型类之外的任何内容。同样,当表单请求保存时,所有表单都可以更新状态,以便它们不显示挂起的更改。

答案 1 :(得分:0)

在多个表单之间传递数据时,通常将其他表单的引用存储为表单中的私有变量,仅由表单的构造函数填充。

但是,请注意,这可能会给你带来记忆问题,特别是事件仍然被连接到其他表格内存中的表格。

答案 2 :(得分:0)

你可能让你的Form3监听Form2中的FormClosed事件,然后有一些代码要求Form2返回数据。或者,您可以在Form2中创建和事件FormClosedWithReturnValue(对象发送者,SomeArgsThatContainsReturnData数据),并让Form3监听该事件。希望有所帮助。