如何判断数据被修改过

BenBen_0571 2007-01-06 09:51:53
如何判断TextBox中的值被修改过?如果被修改过我希望在关闭窗体时候能给出提示,例如:
TextBox1中的数据被修改过,请保存后再退出

还有一个问题是窗体中有很多TextBox,如果要清空它们里面的值除了TextBox1.Text = TextBox2.Text = ""这种方法外还有没有什么比较简单的方法。

谢谢!
...全文
363 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BenBen_0571 2007-01-07
  • 打赏
  • 举报
回复
private bool hasChanged = false;
private void textBox1_TextChanged(object sender, EventArgs e)
{
hasChanged = true;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (hasChanged)
{
//提示保存
}
}



如果有很多TextBox,那岂不是要声明很多bool变量?
greenery 2007-01-07
  • 打赏
  • 举报
回复
将数据方法一个DataRow中
写一个bind方法,从DataRow中绑定数据到空间
确定的时候,将TextBox付到DataRow中
如果行的状态为DataRow.RowState ==Modified就是修改过

需要重置数据时,先重置行数据DataRow.RejectChanges() ;再调用bind方法
linekery 2007-01-07
  • 打赏
  • 举报
回复
一开始把textbox中的数据存一个副本 关闭的时候比较一次 不是更好么
否则更改一点就要触发事件 感觉不好 没有什么实际意义
一家之言 仅供参考
kitten_scratch 2007-01-07
  • 打赏
  • 举报
回复
那你按一组相关的设置一个bool好了
比如 你收集的是个人信息的一类东西,有4个textbox,分别代表 姓名 性别 年龄 民族
只要4个里面有一个改变了,则同时更新这4个数据。
leohuang 2007-01-06
  • 打赏
  • 举报
回复
<p><input type="text" name="T1" size="20" value="a"></p>
<p><input type="text" name="T2" size="20" value="b"></p>
<p><input type="text" name="T3" size="20" value="c"><button onclick="alert(changed);">看看变了吗?</button><button onclick="ClearValue();">清空</button></p>


<script type="text/javascript">
var changed=false;
var text ;

window.onload = ChangeHandle;
function ChangeHandle(){
text = document.getElementsByTagName("input");
for(var i=0;i<text.length;i++){
if(text[i].type.toUpperCase()=="TEXT")
text[i].onchange=function(){changed=true;}
}
}

function ClearValue(){
text = document.getElementsByTagName("input");
for(var i=0;i<text.length;i++){
text[i].value="";
}
changed=true;
}
</script>
hongyelzg 2007-01-06
  • 打赏
  • 举报
回复
Text1.Clear
Snowdust 2007-01-06
  • 打赏
  • 举报
回复
foreach (Control ctrl in this.Controls)
{
if (ctrl is TextBox)
{
((TextBox)ctrl).Text = string.Empty;
}
}
kitten_scratch 2007-01-06
  • 打赏
  • 举报
回复
同意ls的,一般都这么做的
Snowdust 2007-01-06
  • 打赏
  • 举报
回复
private bool hasChanged = false;
private void textBox1_TextChanged(object sender, EventArgs e)
{
hasChanged = true;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (hasChanged)
{
//提示保存
}
}

110,537

社区成员

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

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

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