访问已经实例化的表单

时间:2010-06-20 07:26:19

标签: c# forms compact-framework accessibility

在C#中,使用CF,如何显示已经将前一个实例加载到内存中的窗口?

实施例: Form1有一个textBox1和一个按钮。一些文本输入到texBox1中。 Form1的按钮单击加载Form2,它也有一个按钮。单击Form2的按钮调用Form3。例如,如何调用已经运行的Form1实例来调用它的updateField方法?

2 个答案:

答案 0 :(得分:1)

只需在某处保留对Form1实例的引用 - 例如在构建它时将其传递给Form2,然后Form2可以将其传递给Form3以供使用。

这里的UI控件并没有什么特别的 - 只要想想如果你想访问任何其他类型的对象你会做什么。

答案 1 :(得分:1)

您可以使用活动执行此操作。 Form3应该有一个公共属性,它公开值以及值在更改时触发的事件。 Form2应订阅该事件,以便它可以跟踪更改。重复以告知Form1。

这使课程脱离,Form3不必知道关于Form2或Form1的任何信息,只有某人可能对该属性值感兴趣。重构这些父表单类不能破坏Form3。请注意Windows窗体控件类的工作方式是否相同。