在C#中,使用CF,如何显示已经将前一个实例加载到内存中的窗口?
实施例: Form1有一个textBox1和一个按钮。一些文本输入到texBox1中。 Form1的按钮单击加载Form2,它也有一个按钮。单击Form2的按钮调用Form3。例如,如何调用已经运行的Form1实例来调用它的updateField方法?
答案 0 :(得分:1)
只需在某处保留对Form1
实例的引用 - 例如在构建它时将其传递给Form2
,然后Form2
可以将其传递给Form3
以供使用。
这里的UI控件并没有什么特别的 - 只要想想如果你想访问任何其他类型的对象你会做什么。
答案 1 :(得分:1)
您可以使用活动执行此操作。 Form3应该有一个公共属性,它公开值以及值在更改时触发的事件。 Form2应订阅该事件,以便它可以跟踪更改。重复以告知Form1。
这使课程脱离,Form3不必知道关于Form2或Form1的任何信息,只有某人可能对该属性值感兴趣。重构这些父表单类不能破坏Form3。请注意Windows窗体控件类的工作方式是否相同。