日期:2014-05-19  浏览次数:20912 次

(Winform)求如何方便取到Form内控件的值被修改.
Winform下:

想在关闭Form前识别该Form内控件的值是否被修改.
这样可用于提示用户要保存后才关闭。

本人没找着比较方便的判断控件的值是否被修改方法.

要是一个一个判断也太麻烦了,且也不好判断。

谁人有好方法?

在线等待....


------解决方案--------------------
呵呵:参考我的Blog: http://blog.csdn.net/patrickpan/archive/2007/05/26/1626591.aspx
一个实体类如:
public class Model
{
public Model()
{
}

private string test1;
private DateTime test2;
private string test3;

public string Test1
{
set { test1 = value; }
get { return test1; }
}

public DateTime Test2
{
set { test2 = value; }
get { return test2; }
}

public string Test3
{
set { test3 = value; }
get { return test3; }
}
}

把Form上的控件定义呵实体内的属性相同。
然后用:
Model model = new Model();
model.Test1 = "Hello,World! ";
model.Test2 = DateTime.Now.AddMonths(-2);
model.Test3 = "Nice to meet u! ";
FormBinding.BindObjectToControls(model, this);

修改以后:
Model modelModify = new Model();
FormBinding.BindControlsToObject(modelModify, this);

然后比较model呵modelModify是否相同。
------解决方案--------------------
初始窗体时将控件的初始值保存在tag属性下一份,退出时循环每个控件的值与它tag属性中的内容是否一致就行了。
对了,循环可能要递归一下,因为控件中可能包含控件。
------解决方案--------------------
我建议用databinding 然后判断数据源,我用的是数据实体,实体中有属性来标志是否有字段被修改过