我目前正在开发一个c# Windows窗体应用程序。我有一个窗口,在那里你可以编辑一些数据,我想检查用户是否做了一些事情之前关闭窗口。如果他修改了数据,我们将在关闭窗口之前提示一个消息框询问他是否要保存。如果他没有修改任何内容,或者他在点击保存按钮之前,我们就关闭窗口,没有任何消息。
当我开始学习c#时,我不知道是否有什么要意识到这一点。可能是一种侦听器,可以检测任何修改并返回bool值。
我的save函数返回一个包含已修改数据的列表,所以我考虑调用它并检查列表是否为空。但它可能"沉重"调用保存函数几次,只是为了检查是否有更改。
取决于你在UI上有什么控件以及你需要多少灵活/肮脏的解决方案。一种方法是捕获不同控件的更改事件(文本更改,单元格值更改等),并保留一个布尔标志来表示更改。
您可以使用Form。结束事件,并在表中有任何更改时检入此事件。如果是这样,您可以相应地通知用户,并按照您的应用程序逻辑继续。