在一个主窗体中设计多个窗体的应用程序
本文关键字:窗体 应用程序 一个 | 更新日期: 2023-09-27 17:59:12
我想制作一个只有一个功能的主窗体的应用程序=添加新窗体。
我不知道表单将如何创建,它们是由用户动态创建的(AddForm方法来自主表单)。
所有的sub形式都是相同的,但其中一些prop接收不同的参数(可以在ctor中或更高版本中)。
当我关闭主窗体时,我希望能够关闭所有窗体。
在显示新表单之前,我想显示设置表单(采用表单参数),可能使用ShowDialog方法,并对表单进行验证检查,如果表单验证,则显示新表单,如果不验证(或用户选择取消),则处理表单。
我知道MDI,但我真的更喜欢
有什么想法吗?
谢谢!
当主窗体关闭时关闭所有窗体有些容易,只需在"子"窗体的Show()方法中传递主窗体引用即可;例如,如果你从主屏幕显示孩子,你会:
child.Show(this);
如果你的主窗体不是真正的"程序的主窗体",但你想关闭所有的"子窗体",就需要这样做。
然而,将所有这些连接在一起最好是在某个特殊的类中完成的,该类可能被称为ScreenRepository。在这个类中,你随时都会有一个打开的表单集合,你会将表单创建定义为这个类(这样这个类就会自动注入父表单)等等。如果表单落后于其他表单,那么拥有这个类很容易重新激活(聚焦)表单,如果需要的话创建新表单等等。
想法很简单,创建一个应用程序,从一开始打开一个主窗体,然后在需要时打开其他窗体,如果关闭主窗体,则其他窗体也关闭。就像GIMP一样。