不多说!
private Hashtable htInit = new Hashtable(); /// <summary> /// 将界面上TextBox的初始值记录到Hashtable中 /// </summary> private void InitControlTextToHashtable() { foreach (var c in this.Controls) { if (c.GetType() == typeof(TextBox)) { TextBox tb = c as TextBox; htInit.Add(tb.Name, tb.Text); } } } /// <summary> /// 验证TextBox控件的值是否变化 /// </summary> /// <returns></returns> private bool ValidateTextValueChanged() { foreach (string name in htInit.Keys) { TextBox tb = this.Controls[name] as TextBox; if (tb.Text != htInit[name].ToString()) { return false; } } return true; }
嗯 这个我试试 ...
我的textbox控件是在groupBox1中的
而且是有两个不同的groupBox,里面的textbox都要判断啊?
private void InitControlTextToHashtable() { foreach (var c in this.Controls) { if (c.GetType() == typeof(TextBox)) { TextBox tb = c as TextBox; htInit.Add(tb.Name, tb.Text); } } }
我运行着就出问题了
@.F.: 在第一轮初始化的时候,用递归遍历控件,或者针对两个GroupBox单独处理
@幻天芒: 嗯 明白了
用 EditChange 事件标注当前界面是否有控件的值被修改。
没有这个事件啊.你所说的是哪个控件的事件,是窗体的么?
@.F.: TextBox.TextChanged 事件
循环窗体控件,所有文本控件绑定委托,这样就不用每个控件去写触发事件了。
嗯这样也可以就是咯...谢谢你哈
二楼的做法就可以实现