Events 当用户更改单元格(只读)值时要捕获的C#DataGridView事件

Events 当用户更改单元格(只读)值时要捕获的C#DataGridView事件,events,datagridview,cell,Events,Datagridview,Cell,我有一个用C#编写的Winforms应用程序 在DataGridView中,我将名为“Name”的列(DataGridViewTextBoxColumn)设置为ReadOnly=true 当用户右键单击“名称”列的单元格->显示表单以设置值->我希望应用程序知道:“名称”列的单元格值已更改 我尝试过很多活动,但都做不到,例如CellEndEdit、CellValueChanged 我只对在ReadOnly=true的“Plan”列中捕捉用户对数据的更改感兴趣 哪一项活动是最好的? 本人附上以下资

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

在DataGridView中,我将名为“Name”的列(DataGridViewTextBoxColumn)设置为ReadOnly=true

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

我尝试过很多活动,但都做不到,例如CellEndEdit、CellValueChanged

我只对在ReadOnly=true的“Plan”列中捕捉用户对数据的更改感兴趣

哪一项活动是最好的? 本人附上以下资料:

① 


② 

只有当用户手动更改DataGridView的内容时,
CellEndEdit
CellValueChanged
属性才起作用。您所要做的只是读取Set_value_of_Name表单中文本框的值,并将其与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!");
  }
};

只有当用户手动更改DataGridView的内容时,
CellEndEdit
CellValueChanged
属性才起作用。您所要做的只是读取Set_value_of_Name表单中文本框的值,并将其与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!");
  }
};

我真的不明白,如果它是只读的,怎么能被用户更改呢?用户通过表单更改。我添加了图片说明和源代码。请确认!非常感谢。比较点击OK按钮后文本框的值和单元格的值。我真的不明白,如果它是只读的,用户如何更改它?用户通过表单更改。我添加了图片说明和源代码。请确认!非常感谢。比较单击OK按钮后文本框的值和单元格的值。在主窗体中,事件使用什么?谢谢!我试试看B:它跑得很好!非常感谢。除此之外,我也有类似下面这篇文章的问题,你知道吗?请帮帮我!谢谢[在主要形式中,活动使用了什么?谢谢!我会试试的。B:它运行得很好!谢谢!此外,我还有下面这篇文章的问题,你知道吗?请帮帮我!谢谢[