用户更改Cell(ReadOnly)值时要捕获的C#DataGridView事件

时间:2016-08-21 15:05:45

标签: events datagridview cell

我有一个用C#编写的Winforms应用程序。

在DataGridView中,我设置了一个名为' Name'的列(DataGridViewTextBoxColumn)。 to ReadOnly = true。

当用户右键点击'名称'列 - >显示表单以设置值 - >我希望应用程序知道:Cell的名称'名称'列已更改。

我尝试过很多但不能做的事情,比如CellEndEdit,CellValueChanged

我只对在“计划”中捕获用户对数据的更改感兴趣。 ReadOnly = true的列。

哪个是最好的事件? 我附上如下信息:

Image Description

Source Code

1 个答案:

答案 0 :(得分:0)

CellEndEditCellValueChanged属性仅在用户手动更改DataGridView的内容时才有效。您要做的只是读取Set_Value_Of_Name表单中TextBox的值,并将其与DataGridView单元格的值进行比较。

添加以下行:

btnOK.Click += (senderq, eq) =>
{
  frmValueOfName.Close();
  result = true;

  //Add this line
  if (txtValue.Text != dataGridView[currentMouseOverCol,currentMouseOverRow].Value.ToString())
  {
       MessageBox.Show("Value has been changed!");
  }
};