您的位置:首页 > 编程语言 > C#

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;

}

}

如果有更好的方法请高人们指点,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐