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


DataGridView.CancelRowEdit Событие

Определение

Происходит, когда свойство VirtualMode элемента управления DataGridViewtrue, а пользователь отменяет изменения в строке.

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

Тип события

Примеры

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

void dataGridView1_CancelRowEdit( Object^ /*sender*/,
    System::Windows::Forms::QuestionEventArgs^ /*e*/ )
{
   if ( this->rowInEdit == this->dataGridView1->Rows->Count - 2 &&
        this->rowInEdit == this->customers->Count )
   {
      
      // If the user has canceled the edit of a newly created row, 
      // replace the corresponding Customer object with a new, empty one.
      this->customerInEdit = gcnew Customer;
   }
   else
   {
      
      // If the user has canceled the edit of an existing row, 
      // release the corresponding Customer object.
      this->customerInEdit = nullptr;
      this->rowInEdit = -1;
   }
}
private void dataGridView1_CancelRowEdit(object sender,
    System.Windows.Forms.QuestionEventArgs e)
{
    if (this.rowInEdit == this.dataGridView1.Rows.Count - 2 &&
        this.rowInEdit == this.customers.Count)
    {
        // If the user has canceled the edit of a newly created row, 
        // replace the corresponding Customer object with a new, empty one.
        this.customerInEdit = new Customer();
    }
    else
    {
        // If the user has canceled the edit of an existing row, 
        // release the corresponding Customer object.
        this.customerInEdit = null;
        this.rowInEdit = -1;
    }
}
Private Sub dataGridView1_CancelRowEdit(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.QuestionEventArgs) _
    Handles dataGridView1.CancelRowEdit

    If Me.rowInEdit = Me.dataGridView1.Rows.Count - 2 AndAlso _
        Me.rowInEdit = Me.customers.Count Then

        ' If the user has canceled the edit of a newly created row, 
        ' replace the corresponding Customer object with a new, empty one.
        Me.customerInEdit = New Customer()

    Else

        ' If the user has canceled the edit of an existing row, 
        ' release the corresponding Customer object.
        Me.customerInEdit = Nothing
        Me.rowInEdit = -1

    End If

End Sub

Комментарии

Если DataGridView находится в виртуальном режиме, изменения фиксируются в кэше данных на уровне ячейки по умолчанию. Событие CancelRowEdit можно использовать при реализации транзакций на уровне строк.

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

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

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

  • элемент управления DataGridView (Windows Forms)