C#2005 如何dataGridView的单元格的值发生了改变
2014-11-07 18:14
513 查看
第一步:在DataGridView控件的majorDataGrid_EditingControlShowing事件中给单元格绑定Enter和Leave 事件
private void majorDataGrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control.GetType().Equals(typeof(DataGridViewTextBoxEditingControl)))//cell为类TextBox时
{
e.CellStyle.BackColor = Color.FromName("window");
DataGridViewTextBoxEditingControl editingControl = e.Control as DataGridViewTextBoxEditingControl;
editingControl.Leave += new EventHandler(editingControl_TextChanged);
editingControl.Enter += new EventHandler(editingControl_Enter);
}
}
第二步:当textConrol获取焦点的时候记录单元格的值
private void editingControl_Enter(object sender, EventArgs e)
{
TextBox t = (TextBox)sender;
preTextContent = t.Text;
}
第三步:当光标离开单元格的时候比较进入和离开时单元格的值有没有发生变化,如果值发生变化说明发生了修改,此时利用该行的Tag属性来标注单元格已被修改
private void editingControl_TextChanged(object sender, EventArgs e)
{
TextBox t = (TextBox)sender;
editTextContent = t.Text;
if (editTextContent != preTextContent)
{
majorDataGrid.Rows[majorDataGrid.CurrentCell.RowIndex].Tag = Constant.UPDATED;
}
}
如果有更好的方法请高人们指点,谢谢!
private void majorDataGrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control.GetType().Equals(typeof(DataGridViewTextBoxEditingControl)))//cell为类TextBox时
{
e.CellStyle.BackColor = Color.FromName("window");
DataGridViewTextBoxEditingControl editingControl = e.Control as DataGridViewTextBoxEditingControl;
editingControl.Leave += new EventHandler(editingControl_TextChanged);
editingControl.Enter += new EventHandler(editingControl_Enter);
}
}
第二步:当textConrol获取焦点的时候记录单元格的值
private void editingControl_Enter(object sender, EventArgs e)
{
TextBox t = (TextBox)sender;
preTextContent = t.Text;
}
第三步:当光标离开单元格的时候比较进入和离开时单元格的值有没有发生变化,如果值发生变化说明发生了修改,此时利用该行的Tag属性来标注单元格已被修改
private void editingControl_TextChanged(object sender, EventArgs e)
{
TextBox t = (TextBox)sender;
editTextContent = t.Text;
if (editTextContent != preTextContent)
{
majorDataGrid.Rows[majorDataGrid.CurrentCell.RowIndex].Tag = Constant.UPDATED;
}
}
如果有更好的方法请高人们指点,谢谢!
相关文章推荐
- .net2005 datagridview 如何获取值改变的单元格的集合??(小弟没有为datagridview添加数据源,也就是说单元格中的数据是手工录入的)
- C# .NET 如何在DataGridView中最简洁的实现对单元格显示的处理
- C# winform datagridview 内嵌控件值改变后立即触发事件,而不需要离开该单元格时才触发,此时需要用到dgv_CurrentCellDirtyStateChanged事件
- C#中如何遍历datagridview表格控件中的每一个格子(每一个单元格)
- 【MARK】C# DataGridView控件单元格 未提交 内容改变事件
- vc2005 语言现默认C#,如何改变成 C++语言
- 在Visual Studio 2005的DataGridView控件中加入ComboBox下拉列表框的实现(C#)
- 控制datagridview单元格只能输入数字 VB2005(收藏)
- 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
- 在Visual Studio 2005的DataGridView控件中加入ComboBox下拉列表框的实现(C#)
- [转载]如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
- 如何使用 WebBrowser 控件在 Visual C# 2005 或 Visual C# .NET 中打开 Office 文档
- Visual C# 2005 - 如何将 DataGridView 控件单独截取成一个位图文件
- Visual C# 2005 - 如何于DataGridView控件中以跨数据行方式显示数据
- C#和VB: GridView的列宽如何固定住,在数据很长的情况下也不改变宽度
- 如何通过使用 ADO.NET 2005 和 Visual C# 2005 或使用 ADO.NET 和 Visual C# .NET 连接到数据库并运行命令
- Visual C# 2005 - 如何于DataGridView控件中以跨数据行方式显示数据
- Visual Basic 2005——如何在DataGridView控件的储存格中同时显示出文字与图片
- 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
- Visual Basic 2005——如何在DataGridView控件的储存格中同时显示出文字与图片