Поделиться через


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 Forms 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 свойству правильное значение в зависимости от выбранного область фиксации.

Дополнительные сведения об обработке событий см. в разделе Обработка и создание событий.

Применяется к

См. также раздел