![]() |
1
1
您不应该创建新的事件实例,这些是您希望避免的事情 相反,请尝试:
事件应该自动发生,因此当表单关闭时,“OnFormClosing”将引发。 我也建议使用这个。关闭而不是处置 类型Close()发送正确的Windows消息以关闭win32窗口。在此过程中,如果表单未以模式显示,则会对表单调用Dispose。处理表单会释放表单所持有的非托管资源。 对于更有组织的代码, 尝试从主窗体创建窗体实例 并按如下方式处理对话框结果:
|
![]() |
2
0
我觉得奇怪的是,当用户只想保存数据时,您却想关闭表单。:) 保存时不应关闭表单。 关闭表单时,应验证是否有未保存的更改。 如果有,请询问用户是否要在关闭前保存更改,并向其提供选项Yes、No和Cancel,其中Cancel表示“取消关闭表单”。 根据用户单击的是或否,您应该或不应该保存更改。 如果用户单击了“取消”,则应通过为FormClosing事件创建一个事件来取消关闭表单。此事件允许您取消关闭表单。
当“Form2”不是模态形式时,上面的代码很有用。 如果您希望Form2显示为模态,那么上面的代码也可以使用。但是,在这种情况下,也可以使用窗体的DialogResult属性:
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 6 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 6 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 6 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 6 月前 |