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


DataGridView.RowDirtyStateNeeded Событие

Определение

Происходит, когда VirtualMode свойство DataGridView элемента управления и trueDataGridView необходимо определить, имеет ли текущая строка незафиксированные изменения.

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 

Тип события

Примеры

В следующем примере кода показано, как обрабатывать это событие для предоставления области фиксации на уровне ячейки, что означает, что пользователь может вернуть изменения только в текущую ячейку. В области фиксации на уровне ячейки строка обрабатывается как незафиксированные изменения, только если текущая ячейка имеет незафиксированные изменения, а не когда любая ячейка в строке имеет незафиксированные изменения. Этот пример является частью более крупного примера, доступного в пошаговом руководстве. Реализация виртуального режима в элементе управления DataGridView в Windows Forms.

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

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

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

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