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)