就是一个画面上有若干文本框、下拉框
关闭这个画面前要先判断每个控件里输入的值有没有更改,有过更改弹个提示框希望各位大牛给个提示,怎么判断比较好
谢谢了

解决方案 »

  1.   


    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);
            }
      

  2.   

    全局用一个标记为设为false
    画面每个更改的地方都将false设为true
    然后最后判断是否为true缺点:每个更改都加判断,代码量大,不够灵活
          不知道用户改了几个地方,改了什么地方
      

  3.   

    加载的时候将值存在一个table里面
    然后离开的时候再获取每个的值
    对比
      

  4.   

    谢谢了1#,不光是textbox的,而且有些是有初始值,所以不好用string.empty判断;
    3#,用DataTable判断的话感觉有点硬编码= =
      

  5.   

    如果是存在数据源的,那么可以迭代判断的,如果是硬写上去的,还是得hashtable
      

  6.   

    初始值是从hashtable里读出来的
      

  7.   

    不好意思说错了,初始值是从泛型里获得的
    Dictionary <string,Object>这个东西,没错吧- -
    判断前先把每个值存到一个新泛型里,然后对比两个泛型?