winform中关于多个控件值更改的问题

Nagatoyuki 2009-05-05 02:18:16
就是一个画面上有若干文本框、下拉框
关闭这个画面前要先判断每个控件里输入的值有没有更改,有过更改弹个提示框

希望各位大牛给个提示,怎么判断比较好
谢谢了
...全文
120 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanhuiqiao 2009-05-05
  • 打赏
  • 举报
回复
支持泛型
mdq001 2009-05-05
  • 打赏
  • 举报
回复
没问题
Nagatoyuki 2009-05-05
  • 打赏
  • 举报
回复
不好意思说错了,初始值是从泛型里获得的
Dictionary <string,Object>这个东西,没错吧- -
判断前先把每个值存到一个新泛型里,然后对比两个泛型?
mdq001 2009-05-05
  • 打赏
  • 举报
回复
那好办了,直接迭代呗

Nagatoyuki 2009-05-05
  • 打赏
  • 举报
回复
初始值是从hashtable里读出来的
mdq001 2009-05-05
  • 打赏
  • 举报
回复
如果是存在数据源的,那么可以迭代判断的,如果是硬写上去的,还是得hashtable
Nagatoyuki 2009-05-05
  • 打赏
  • 举报
回复
谢谢了

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

llsen 2009-05-05
  • 打赏
  • 举报
回复
加载的时候将值存在一个table里面
然后离开的时候再获取每个的值
对比
llsen 2009-05-05
  • 打赏
  • 举报
回复
全局用一个标记为设为false
画面每个更改的地方都将false设为true
然后最后判断是否为true

缺点:每个更改都加判断,代码量大,不够灵活
不知道用户改了几个地方,改了什么地方
mdq001 2009-05-05
  • 打赏
  • 举报
回复

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

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧