Winform:单据上的值改变,保存按钮可用,不保存关闭提示,如何设置? 单据上有Textbox、Combobox、datagridview等可编辑控件,当修改值时,保存按钮可用,若不保存关闭则提示。请问如何设置? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 每个控件添加修改事件,然后用bool记录是否修改或者保存初始化的值关闭时遍历控件检查值是否修改 1、Textbox、Combobox、datagridview 改变的时候,设置保存按钮可用。2、定义一个BOOL修改标识。当有修改发生的时候BOOL=TRUE.保存后BOOL=FALSE。退出的时候判断BOOL的值。 就是设置一个标记,改动了标记就变为true,就让保存 建 一个 bool 变量 默认 False然后在 写三个事件 当 Textbox、Combobox、datagridview 值发生改变后触发将bool 改成True。最后 在 确定 和 取消 按钮 的单击事件 中判断bool 是否为 Ture //刚开始并未保存 static bool flag = false; //保存 private void button2_Click(object sender, EventArgs e) { flag = true; //处理别的事务 } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { //判断你是否保存过 if (!flag) { DialogResult dr = MessageBox.Show("您保尚未保存,现在保存吗?", "是否保存", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); //如果你要确定要保存 if (dr == DialogResult.Cancel) { e.Cancel = true; } else if (dr == DialogResult.OK) { //开始保存,并且处理别的事务 } } } 采用设置Private Bool是可以,那我要在每个改变控件的事件中都要写改变bool值的语句,那样很多控件改变,设置就太麻烦了,还有其他好的办法吗? 用bool太麻烦了 这得写多少个事件啊我建议是关闭的时候将页面的数据放入一个datatable中跟从数据库查出来的数据进行比较 如果有不一样的提示保存 定义上boolTextbox_textcheng、Combobox_textcheng、datagridview_celledit中加bool =truebutton_click中加bool=false这也不多呀,又不用你写方法事件 你有多少个事件就得写多少个bool =false 开始时让 btnOK.Enable = false;然后让那几个需要修改的空间的Changed事件指向private void OnControlValueChanged(object sender, EventArgs e){ btnOK.Enabled = true; } 还是要将TextBox ComMoBox DataGridView CheckBox等有值改变事件都要写上代码。那样就要加上很多事件了? datagridview有用数据源吗>> dataset OR datatable有一个方法.ds.HasChange dt.GetChanges() 怪哉,“Dictionary”明明存在此“关键字”的啊,为什么提示找不到??? 关于sqlbulkcopy类使用遇到的异常问题 C#如何取span的内容 关于系统右键的简单问题 引用类型和值类型的问题,难道string不是引用类型?看看这个错那了? 如何知道一个文本文件是unicode还是ansi或者其它编码的? c#怎么实现菜单重用? 大家帮忙看下这个路径 dateTimePicker1 的值 改为UNIX日期 求Visual Studio .NET 2003简体中文正式版的下载地址! 读取XML文件出错 新手没积分请谅解 程序无法退出的问题
2、定义一个BOOL修改标识。当有修改发生的时候BOOL=TRUE.保存后BOOL=FALSE。退出的时候判断BOOL的值。
然后在 写三个事件 当 Textbox、Combobox、datagridview
值发生改变后触发将bool 改成True。
最后 在 确定 和 取消 按钮 的单击事件 中判断
bool 是否为 Ture
//刚开始并未保存
static bool flag = false; //保存
private void button2_Click(object sender, EventArgs e)
{
flag = true;
//处理别的事务
} private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//判断你是否保存过
if (!flag)
{
DialogResult dr = MessageBox.Show("您保尚未保存,现在保存吗?", "是否保存", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
//如果你要确定要保存
if (dr == DialogResult.Cancel)
{
e.Cancel = true;
}
else if (dr == DialogResult.OK)
{
//开始保存,并且处理别的事务
}
}
}
我建议是关闭的时候将页面的数据放入一个datatable中跟从数据库查出来的数据进行比较 如果有不一样的提示保存
=true
button_click中加bool=false这也不多呀,又不用你写方法事件
private void OnControlValueChanged(object sender, EventArgs e)
{
btnOK.Enabled = true;
}