DataGridView.RowDirtyStateNeeded 事件

定义

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

C#
public event System.Windows.Forms.QuestionEventHandler RowDirtyStateNeeded;
C#
public event System.Windows.Forms.QuestionEventHandler? RowDirtyStateNeeded;

事件类型

示例

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

C#
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;
    }
}

注解

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

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

适用于

产品 版本
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另请参阅