winform中如何判断控件的内容已经修改?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform中如何判断控件的内容已经修改?相关的知识,希望对你有一定的参考价值。
winform中,比如一个添加界面,或者修改界面,里面有一些TextBox还有一些ComboBox等一系列控件。
要实现的效果就是:
当这些控件中的数据修改后,比如填写了一些数据,还没有保存时用户要关闭此窗体,就提示用户是否保存。如果内容没有发生变化就不提示。
请教如何实现?不至于每个控件TextChanged去检测吧。。。。
声明一个全局的bool变量=false
在事件中令其=true
form.closing事件中加一个判断就可以了
=true 则提示并return
具体的代码你应该可以实现,不会的话,就你选中窗体上所有的控件,然后到事件中找到textchanged事件,双击事件就可以了
框架会自动为其添加委托
思路就是这样的 不明白的话 给我留言也可以 参考技术A 写个循环给窗体的控件添加TextChanged事件。 参考技术B 你有没有把每个控件都绑定到数据集中,如果有要判断就很简单了,代码:
DataSet有个方法,用于判断数据是否有改变:HasChanges(),如果有改变会返回true,否则返回false.如果有不明白可以百度hi我 参考技术C 我觉得你可以另外写一个方法用来判断是否保存这些数据,保存了返回true,没保存返回false
然后在窗体的FormClosing事件里调用该方法,如果是false,这里就MessageBox.Show(你要提示的内容),否则就直接关闭窗体
小小的愚见 0 0 参考技术D 简单的思路:
1,取得控件的对象引用后,用一个object
类型变量存储起来
(如果你要遍历窗体控件,当然就用循环了
)
2,用
is
运算符来验证是否按钮
(控件对象
is
button)
会反回true
或false
至于在什么时候判断,这就看你的需要了
如何设计WinForm中DataGridView控件的自定义按钮列
在信息管理系统的开发过程中,我们常需要将信息显示为一个列表,并在表格的最后一列显示“查看信息”或“修改”、“删除”等按钮。在Asp.Net中我们可以采用Repeater控件方便的实现,但在WinForm中我们常用的DataGridView控件,却并不支持在一列中显示多个按钮。
查看信息列表界面:
修改、删除信息列表界面:
系统源码截图:
参考技术A public void DgvStyle3(DataGridView dgv)//未显示数据时的背景色
dgv.BackgroundColor = System.Drawing.SystemColors.ButtonFace;
//显示数据时的背景色
dgv.RowsDefaultCellStyle.BackColor = System.Drawing.Color.Black;
//数据网格颜色
dgv.GridColor = System.Drawing.Color.Red;
//列标题的边框样式
dgv.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
//行的边框样式
dgv.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
////禁止当前默认的视觉样式
dgv.EnableHeadersVisualStyles = false;
//列标题的宽度
dgv.ColumnHeadersHeight = 28;
//列标题的字体颜色
dgv.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.Color.Blue;
//列标题的背景颜色
dgv.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
//所有数据字体的颜色
int RowsCount = dgv.Columns.Count;
for (int i = 0; i < RowsCount; i++)
dgv.Columns[i].DefaultCellStyle.ForeColor = System.Drawing.Color.Yellow;
以上是关于winform中如何判断控件的内容已经修改?的主要内容,如果未能解决你的问题,请参考以下文章
C# winform,怎么通过控件的Name属性判断某个控件是不是已经存在
winform 窗体退出前判断表单是不是修改过,窗体上的控件有很多个,TextBox,combox,datagridview