winform中关于多个控件值更改的问题 就是一个画面上有若干文本框、下拉框关闭这个画面前要先判断每个控件里输入的值有没有更改,有过更改弹个提示框希望各位大牛给个提示,怎么判断比较好谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 protected override void OnFormClosing(FormClosingEventArgs e) { foreach (Control c in this.Controls) { if (c is TextBox) { if (((TextBox)c).Text != String.Empty) { MessageBox.Show("you changed value"); } } } base.OnFormClosing(e); } 全局用一个标记为设为false画面每个更改的地方都将false设为true然后最后判断是否为true缺点:每个更改都加判断,代码量大,不够灵活 不知道用户改了几个地方,改了什么地方 加载的时候将值存在一个table里面然后离开的时候再获取每个的值对比 谢谢了1#,不光是textbox的,而且有些是有初始值,所以不好用string.empty判断;3#,用DataTable判断的话感觉有点硬编码= = 如果是存在数据源的,那么可以迭代判断的,如果是硬写上去的,还是得hashtable 初始值是从hashtable里读出来的 不好意思说错了,初始值是从泛型里获得的Dictionary <string,Object>这个东西,没错吧- -判断前先把每个值存到一个新泛型里,然后对比两个泛型? c# combobox如何对应相对的值的呢? dotnetbar中的advtree控件 怎么控制默认展开的级数 谢谢各位 C#中我定义的常量想在不同的类中使用,如何办? 请问关于安装MSMQ的组件错误。 有什么办法在服务器变动以后不用重新编译程序? 0x80070005 拒绝访问?这是怎么回事??... 给点应聘方面的试题,多谢各位 Win8开发 如何使用json 未能找到任何适合于指定的区域性或非特定区域性的资源 如何在Visual C#.net中实现Web窗体分割? c#如何清除GridView中的数据 Decimal在计算机中的存储格式
protected override void OnFormClosing(FormClosingEventArgs e)
{
foreach (Control c in this.Controls)
{
if (c is TextBox)
{
if (((TextBox)c).Text != String.Empty)
{
MessageBox.Show("you changed value");
}
}
}
base.OnFormClosing(e);
}
画面每个更改的地方都将false设为true
然后最后判断是否为true缺点:每个更改都加判断,代码量大,不够灵活
不知道用户改了几个地方,改了什么地方
然后离开的时候再获取每个的值
对比
3#,用DataTable判断的话感觉有点硬编码= =
Dictionary <string,Object>这个东西,没错吧- -
判断前先把每个值存到一个新泛型里,然后对比两个泛型?