DataGridView.CancelRowEdit Událost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Nastane, když VirtualMode vlastnost ovládacího prvku DataGridView je true
a uživatel zruší úpravy v řádku.
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
Event Type
Příklady
Následující příklad kódu ukazuje, jak zpracovat tuto událost pro DataGridView ovládací prvek ve virtuálním režimu. Pokud je ovládací prvek v režimu úprav, proměnná rowInEdit
obsahuje index upravovaného řádku a proměnná customerInEdit
obsahuje odkaz na objekt Customer odpovídající danému řádku. Když uživatel zruší režim úprav, může být tento objekt zahozen. Pokud je řádek, který uživatel upravoval, řádek pro nové záznamy, starý objekt Zákazník se však zahodí a nahradí novým objektem, aby uživatel mohl začít znovu provádět úpravy. Tento příklad je součástí většího příkladu dostupného v Návod: Implementace virtuálního režimu v ovládacím prvku Windows Forms DataGridView.
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
Poznámky
Pokud je DataGridView ve virtuálním režimu, změny se ve výchozím nastavení zapíšou do mezipaměti dat na úrovni buňky. Událost CancelRowEdit lze použít při implementaci transakcí na úrovni řádků.
Další informace o zpracování událostí naleznete v tématu zpracování a vyvolávání událostí.