winform 窗体退出前判断表单是否修改过,窗体上的控件有很多个,TextBox,combox,datagridview
展开全部
给你思路,在退出窗体的事件中写代码
遍历窗体中的控件,如果当前控件是TextBox 并判断他的Text属性是否为空
如果不为空,则提示保存
代码如下
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
foreach (Control currentControl in Controls)
{
if (currentControl is TextBox)
{
TextBox objTextBox = currentControl as TextBox;
if (!string.IsNullOrEmpty(objTextBox.Text))
{
MessageBox.Show("请保存数据");
}
}
}
}
遍历窗体中的控件,如果当前控件是TextBox 并判断他的Text属性是否为空
如果不为空,则提示保存
代码如下
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
foreach (Control currentControl in Controls)
{
if (currentControl is TextBox)
{
TextBox objTextBox = currentControl as TextBox;
if (!string.IsNullOrEmpty(objTextBox.Text))
{
MessageBox.Show("请保存数据");
}
}
}
}
追问
是判断是否修改过或者说编辑过!还有不是只有TextBox啊!
追答
是什么类型就去判断他的默认值是不是变了,比如CheckBox 默认值是False,但在遍历的时候是True,就说明改变了。原理都是一样的
展开全部
加载时将信息保存到tag属性里 窗体退出时比较tag和当前的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单说呢,就是比较两个值,一个是打开时的值,一个是关闭时的值,相同不保存,不同则要提示保存。具体操作,可以自己思考思考哦~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个主要看你使用什么方式编写代码的
标准对象编写方式,你可以在UI view实体上实现INotifyPropotyChanged 和IEditAbled两个接口去实现
如果是使用dataset+Bindingsource的话,本身dataset已经实现上面的接口,你可以用dataset.getChanged方法获得是否有修改的值
如果你是自己手工赋值的,那就没啥简单方法了。只能自己缓存一个原始的对象值,然后自己挨个判定
标准对象编写方式,你可以在UI view实体上实现INotifyPropotyChanged 和IEditAbled两个接口去实现
如果是使用dataset+Bindingsource的话,本身dataset已经实现上面的接口,你可以用dataset.getChanged方法获得是否有修改的值
如果你是自己手工赋值的,那就没啥简单方法了。只能自己缓存一个原始的对象值,然后自己挨个判定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
添加每个控件的值改变事件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询