DataGridView.CancelRowEdit Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Występuje, gdy właściwość VirtualMode kontrolki DataGridView jest true
, a użytkownik anuluje edycje w wierszu.
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
Typ zdarzenia
Przykłady
Poniższy przykład kodu ilustruje sposób obsługi tego zdarzenia dla kontrolki DataGridView w trybie wirtualnym. Gdy kontrolka jest w trybie edycji, zmienna rowInEdit
przechowuje indeks edytowanego wiersza, a zmienna customerInEdit
przechowuje odwołanie do obiektu Customer odpowiadającego temu wierszowi. Gdy użytkownik anuluje tryb edycji, ten obiekt może zostać odrzucony. Jeśli wiersz edytowany przez użytkownika jest wierszem dla nowych rekordów, jednak stary obiekt Klienta zostanie odrzucony i zastąpiony nowym, aby użytkownik mógł rozpocząć ponowne wprowadzanie zmian. Ten przykład jest częścią większego przykładu dostępnego w przewodniku : Implementowanie trybu wirtualnego w kontrolce DataGridView formularzy systemu Windows.
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
Uwagi
Gdy DataGridView jest w trybie wirtualnym, zmiany są domyślnie zatwierdzane w pamięci podręcznej danych na poziomie komórki. Zdarzenie CancelRowEdit może być używane podczas implementowania transakcji na poziomie wiersza.
Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.
Dotyczy
Zobacz też
- kontrolki
DataGridView (Formularze systemu Windows)