如何在用户关闭 window 之前检测修改

How do I detect a modification before the user closes the window

我目前正在开发 C# Windows 表单应用程序。 我有一个 window 和一个 table,您可以在其中编辑一些数据,我想检查用户在关闭 window 之前是否做了一些事情。如果他修改了数据,我们会提示一个消息框询问他是否要在关闭 window 之前保存。如果他什么也没做,或者他在我们关闭 window 之前点击了保存按钮,没有任何消息。

我刚开始学C#,不知道有没有什么可以实现的。也许是一种检测任何修改的侦听器和 return 布尔值。

我的保存函数return是一个包含已修改数据的列表,所以我想调用它并检查列表是否为空。但可能 "heavy" 多次调用保存函数只是为了检查是否发生了变化。

取决于您对 UI 的控制以及您需要多少 flexible/dirty 解决方案。一种方法是捕获不同控件的更改事件(文本更改、单元格值更改等)并保留一个布尔标志来表示发生了更改。

您可以使用 Form.Closing 活动,如果您的 table 有任何变化,请查看此活动。如果是这样,您可以相应地通知用户并按照您的应用程序逻辑进行操作。