窗体内有六十多个TextBox 现在想到的方法是定义一个全局变量hasChange = false如果有改动则变为true 提交了则变为false 在Closeing事件判断hasChange的值并进行相应的操作
现在我想问一下如何判断有改动?能想到的就是就是在每个textbox的TextChange事件里把hasChange 给变为true 有没有其他的方法?
现在我想问一下如何判断有改动?能想到的就是就是在每个textbox的TextChange事件里把hasChange 给变为true 有没有其他的方法?
如果要求很高的话,那么你要在把数据加载到每个TextBox后做一个用来比较的副本,当程序关闭的时候把每一个文本框的内容和原来的副本比较,如果有一个不同也是有了改动,则保存.
如果要求很高的话,那么你要在把数据加载到每个TextBox后做一个用来比较的副本,当程序关闭的时候把每一个文本框的内容和原来的副本比较,如果有一个不同也是有了改动,则保存.
--------------------此方法是正解。如果是对某个Textbox的内容删除了,之后又填写了,但与之前的内容一样,没有发生变化的话,用textbox的TextChange事件处理,就会认为是内容修改了,但实际上没有修改。主要看LZ的程序的要求了,如果认为只要变化了(不论与原来内容是否相同)就提示,那就无所谓哪种方法了。
如楼上说的“对某个Textbox的内容删除了,之后又填写了,但与之前的内容一样,没有发生变化的话,用textbox的TextChange事件处理,就会认为是内容修改了,但实际上没有修改。”
方法2是save前写个循环判断一下每个textbox的值是不是等于初始的class的各字段的值
方法3是TextChanged事件能想到的就这么多了
当初设计时没考虑到我是手动写SQL的
反正这些textbox共用一个事件方法,也就几行代码.
这个问题可以通过把初始值保存到Control.Tag属性中,在TextChanged属性发生时,比较新值和Tag属性的值,当然,如果有需要可以更新Control.Tag属性值。