如何比较编辑模式下datagridview中单元格的值?换句话说,我想向最终用户展示一个“YES NO”对话框,并显示他编辑的旧值和新值。在编辑模式下比较datagridview单元格中的旧值和新值
0
A
回答
0
在窗体加载我创建了一些行和列,
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("test1");
dt.Columns.Add("test2");
dt.Columns.Add("test3");
string[] row = new string[] { "1", "Product 1", "1000" };
dt.Rows.Add(row);
row = new string[] { "2", "Product 2", "2000" };
dt.Rows.Add(row);
row = new string[] { "3", "Product 3", "3000" };
dt.Rows.Add(row);
row = new string[] { "4", "Product 4", "4000" };
dt.Rows.Add(row);
dataGridView1.DataSource = dt;
}
现在,CellBeginEdit
和CellEndEdit
会做的伎俩。
string tempValue = "";
private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
tempValue = dataGridView1.CurrentCell.Value.ToString(); // every edit start took the value and put it to tempValue.
}
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (tempValue != dataGridView1.CurrentCell.Value.ToString()) // we need to compare tempValue and currentValue. If we don't, even we don't do any changes it will show dialog result.
{ // take the current value (changed value)
string currentValue = dataGridView1.CurrentCell.Value.ToString();
DialogResult dialogResult = MessageBox.Show("old value:" + tempValue + " new value:" + currentValue, "Confirm Change", MessageBoxButtons.YesNo); //show dialog result
if (dialogResult == DialogResult.Yes) // if yes do something
{
// yes
}
else if (dialogResult == DialogResult.No) // if no cancel changed value set old value which is tempValue.
{
dataGridView1.CurrentCell.Value = tempValue;
}
}
}
希望帮助,
0
将在CellBeginEdit和CellEndEdit事件火灾CellValueChanged事件之前还是之后?现在,我正在捕获CellValueChanged事件中的值并更新数据库。
+0
我会回答你的问题,并在我的回答中留言。通过添加新答案来提出新问题是不正确的方法。 – Berkay
+0
对不起。 –
相关问题
- 1. 编辑模式下datagridview单元格的格式不同
- 2. Datagridview:如何在编辑模式下设置单元格?
- 3. DataGridView C#编辑模式值编辑后的格式
- 4. DataGridView单元格值的数值比较错误地计算
- 5. 在vba中比较单元格的值
- 6. 访问Datagridview单元格值,而其值正在编辑
- 7. 在编辑模式下,进入下一个单元格并保持VB.NET DataGridView的编辑模式?
- 8. 比较旧值与新值并更新
- 9. C#Datagridview编辑单元格
- 10. 如何在DataGridView中编辑单元格?
- 11. C# - 的DataGridView比较两个单元格的值和设置风格
- 12. 编辑QTableView单元格值
- 13. 在编辑单元格值时编辑单元格值时显示十进制格式的数据
- 14. 以编程方式在datagridview单元格中设置值
- 15. DataGridView - “单元格选择样式” - 编辑单元格
- 16. 更改datagridview单元格中编辑的单元格
- 17. 如何自动结束DataGridView单元格编辑模式?
- 18. 在编辑单元格时切换值
- 19. 编辑DataGridView单元
- 20. DataGridView编辑WinForms上的单元格
- 21. datagridview行单元格值
- 22. 在LightSwitch验证中比较旧值与新值
- 23. WPF datagrid - 编辑的单元格的值
- 24. 如何在虚拟模式下设置Winforms DataGridView的行标题单元格值?
- 25. 在primefaces中单元格编辑没有更新值
- 26. DataGridView验证和更改单元格值
- 27. datagridview单元格在Windows窗体中编辑和保存功能?
- 28. 比较2 datagridview c值#
- 29. datagridview单元格编辑错误
- 30. 比较单元格条目和返回值在SAS
在CellValueChanged事件之前或之后触发CellBeginEdit和CellEndEdit事件吗?现在,我正在捕获CellValueChanged事件中的值并更新数据库。 –
如果您有3个事件,First CellBeginEdit会触发CellEndEdit,CellValueChanged和CellEndEdit。 @dn_learner – Berkay