我有一个控制雷达干扰器的大型 C# 项目。加载项目后,我们创建了 3 个线程,每个线程都打开了我们所谓的“主窗体”(关闭其中一个主窗体将关闭程序。
我目前遇到的问题是,在确保所有其他表单已保存并正确关闭之前,我可以关闭其中一个主表单。完成这项任务的最佳方法是什么?我目前的建议是保留一个全局堆栈来跟踪所有打开的表单,并且在关闭主窗体之前,它会尝试保存并关闭堆栈中的所有表单。
我有一个控制雷达干扰器的大型 C# 项目。加载项目后,我们创建了 3 个线程,每个线程都打开了我们所谓的“主窗体”(关闭其中一个主窗体将关闭程序。
我目前遇到的问题是,在确保所有其他表单已保存并正确关闭之前,我可以关闭其中一个主表单。完成这项任务的最佳方法是什么?我目前的建议是保留一个全局堆栈来跟踪所有打开的表单,并且在关闭主窗体之前,它会尝试保存并关闭堆栈中的所有表单。
如果您的功能是让表单不再显示但仍然可以在内部访问表单的数据,您可以使用 hide() 而不是立即关闭它们。
但是,您可能应该有一个列表,如您所说,其中包含对所有主窗体的引用并遍历它们以在真正摆脱它们之前保存它们的信息。
编辑:您也可以随时使用 OnFormClosing 方法。那是更多的事件驱动方法。http://msdn.microsoft.com/en-us/library/system.windows.forms.form.onformclosing.aspx