【发布时间】:2015-09-21 13:28:59
【问题描述】:
在我的 winform 应用程序中,我有一个表单可以在 for 循环期间创建其他表单。这个父表单仍然隐藏,纯粹是为了处理。
我将处理代码从程序类中移开,因为Application.Run 似乎没有很好地放在一个循环中,因为会打开多个实例。
当子窗体完成后,它们将关闭。我想知道的是,即使父表单仍然打开,当这些表单关闭时,我是否可以让应用程序退出。我尝试在父表单上公开List<bool> 以存储哪些表单已关闭,但由于父表单没有实例名称,子表单无法访问列表 - 它由Application.Run(new FormProcessor(args));调用
更一般地说,我想我问的是有没有一种方法可以从子表单访问父表单的属性。
【问题讨论】:
-
您可以使用共享视图模型,该模型从父表单中初始化,并简单地作为构造函数参数或属性提供给子表单。另一方面,所有子表单都应该有一个
FormClosed事件,您可以将自己绑定到该事件,当表单关闭时,您从列表中删除对该表单的引用,一旦您有一个空列表,您调用 @ 987654326@ -
这一切似乎是替换ApplicationContext的不必要的黑客攻击
标签: c# forms winforms parent-child exit