net windows表单应用程序。我有一个组合框和一个文本框和一个关闭窗口按钮。现在如果我在组合框或文本框中进行任何更改并单击关闭窗口按钮,它应该提示用户保存修改..如果没有进行修改(用户将只运行应用程序,不进行任何修改)那么它不应该提示用户。它应该直接关闭..我该怎么做?
答案 0 :(得分:4)
一种简单的方法是在表单中添加dirty
成员,每当有任何更改时我都会设置为true
,然后在表单关闭时进行检查。
答案 1 :(得分:4)
覆盖表单的OnClosing方法(或附加到Closing事件)。在处理程序中检查修改并向用户显示消息框。如果您不希望表单关闭,只需在返回之前将e.Cancel属性设置为false。
答案 2 :(得分:1)
一种方法是在表单上保留一个名为_changed的bool标志或类似的成员变量。 然后在TextBox的TextChanged事件和ComboBox的SelectedIndexChanged事件中,您只需设置_changed = true。
然后,就在表单关闭之前,如果_changed为true,则提示用户。
编辑:
如果表单上有许多TexBox控件,则可以将它们全部挂钩到同一个TextChanged事件处理程序。然后,无论哪个TextBox的文本发生变化,_changed都将设置为true。
然后对多个ComboBox控件和一个SelectedIndexChanged事件执行相同操作。
如果你真的有很多控件,而不是手动挂钩,你甚至可以编写一个递归循环遍历表单的Controls集合的方法,并将每种类型的控件挂钩到相应的事件处理程序。然后,您可以在多个表单中重复使用该方法,以节省大量时间和维护,因为当您添加新控件时,它们将自动被处理。