Bagikan melalui


DataGridView.CancelRowEdit Kejadian

Definisi

Terjadi ketika properti VirtualMode kontrol DataGridViewtrue dan pengguna membatalkan pengeditan berturut-turut.

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 

Jenis Acara

Contoh

Contoh kode berikut menggambarkan cara menangani peristiwa ini untuk kontrol DataGridView dalam mode virtual. Saat kontrol dalam mode edit, variabel rowInEdit menyimpan indeks baris yang sedang diedit, dan variabel customerInEdit menyimpan referensi ke objek Pelanggan yang sesuai dengan baris tersebut. Ketika pengguna membatalkan mode edit, objek ini dapat dibuang. Namun, jika baris yang diedit pengguna adalah baris untuk rekaman baru, namun, objek Pelanggan lama dibuang dan diganti dengan yang baru sehingga pengguna dapat mulai melakukan pengeditan lagi. Contoh ini adalah bagian dari contoh yang lebih besar yang tersedia di Walkthrough: Menerapkan Mode Virtual di Windows Forms DataGridView Control.

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

Keterangan

Saat DataGridView dalam mode virtual, perubahan diterapkan pada cache data di tingkat sel secara default. Peristiwa CancelRowEdit dapat digunakan saat menerapkan transaksi tingkat baris.

Untuk informasi selengkapnya tentang cara menangani peristiwa, lihat Menangani dan Meningkatkan Peristiwa.

Berlaku untuk

Lihat juga

  • DataGridView Control (Windows Forms)