DataGridView.RowDirtyStateNeeded 事件

定义

在以下情况下发生:当 VirtualMode 控件的 DataGridView 属性为 true,并且 DataGridView 需要确定当前行是否有未提交的更改时。

public:
 event System::Windows::Forms::QuestionEventHandler ^ RowDirtyStateNeeded;
public event System.Windows.Forms.QuestionEventHandler RowDirtyStateNeeded;
public event System.Windows.Forms.QuestionEventHandler? RowDirtyStateNeeded;
member this.RowDirtyStateNeeded : System.Windows.Forms.QuestionEventHandler 
Public Custom Event RowDirtyStateNeeded As QuestionEventHandler 

事件类型

示例

下面的代码示例演示如何处理此事件以提供单元格级提交范围,这意味着用户只能对当前单元格还原更改。 在单元格级提交范围中,仅当当前单元格有未提交的更改时,才将行视为具有未提交的更改,而不是当行中的任何单元格有未提交的更改时。 此示例是演练:在 Windows 窗体 DataGridView 控件中实现虚拟模式中提供的更大示例的一部分。

void dataGridView1_RowDirtyStateNeeded( Object^ /*sender*/,
    System::Windows::Forms::QuestionEventArgs^ e )
{
   if (  !rowScopeCommit )
   {
      
      // In cell-level commit scope, indicate whether the value
      // of the current cell has been modified.
      e->Response = this->dataGridView1->IsCurrentCellDirty;
   }
}
private void dataGridView1_RowDirtyStateNeeded(object sender,
    System.Windows.Forms.QuestionEventArgs e)
{
    if (!rowScopeCommit)
    {
        // In cell-level commit scope, indicate whether the value
        // of the current cell has been modified.
        e.Response = this.dataGridView1.IsCurrentCellDirty;
    }
}
Private Sub dataGridView1_RowDirtyStateNeeded(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.QuestionEventArgs) _
    Handles dataGridView1.RowDirtyStateNeeded

    If Not rowScopeCommit Then

        ' In cell-level commit scope, indicate whether the value
        ' of the current cell has been modified.
        e.Response = Me.dataGridView1.IsCurrentCellDirty

    End If

End Sub

注解

默认情况下,如果修改了当前行中的任何单元格,此事件会将 QuestionEventArgs.Response 属性 true 设置为 。 这会导致 CancelRowEdit 当用户将编辑还原为行时发生该事件。 用户可以在单元格处于编辑模式时按两次 ESC 或一次超出编辑模式,从而还原对行的编辑。 此事件可用于在虚拟模式下自定义提交范围,方法是根据所选提交范围将 属性设置为 QuestionEventArgs.Response 正确的值。

有关如何处理事件的详细信息,请参阅 处理和引发事件

适用于

另请参阅