Bagikan melalui


DataGridViewRowContextMenuStripNeededEventHandler Delegasikan

Definisi

Mewakili metode yang akan menangani RowContextMenuStripNeeded peristiwa DataGridView.

public delegate void DataGridViewRowContextMenuStripNeededEventHandler(System::Object ^ sender, DataGridViewRowContextMenuStripNeededEventArgs ^ e);
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(object sender, DataGridViewRowContextMenuStripNeededEventArgs e);
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(object? sender, DataGridViewRowContextMenuStripNeededEventArgs e);
type DataGridViewRowContextMenuStripNeededEventHandler = delegate of obj * DataGridViewRowContextMenuStripNeededEventArgs -> unit
Public Delegate Sub DataGridViewRowContextMenuStripNeededEventHandler(sender As Object, e As DataGridViewRowContextMenuStripNeededEventArgs)

Parameter

sender
Object

Sumber dari peristiwa tersebut.

Contoh

Dalam contoh kode berikut, acara ditangani RowContextMenuStripNeeded untuk memberikan ContextMenuStrip berdasarkan judul karyawan. Dalam contoh ini, dua ada dua menu konteks, satu untuk manajer dan satu untuk semua karyawan lainnya.

void dataGridView1_RowContextMenuStripNeeded(object sender,
    DataGridViewRowContextMenuStripNeededEventArgs e)
{
    DataGridViewRow dataGridViewRow1 = dataGridView1.Rows[e.RowIndex];

    toolStripMenuItem1.Enabled = true;

    // Show the appropriate ContextMenuStrip based on the employees title.
    if ((dataGridViewRow1.Cells["Title"].Value.ToString() ==
        "Sales Manager") ||
        (dataGridViewRow1.Cells["Title"].Value.ToString() ==
        "Vice President, Sales"))
    {
        e.ContextMenuStrip = managerMenuStrip;
    }
    else
    {
        e.ContextMenuStrip = employeeMenuStrip;
    }

    contextMenuRowIndex = e.RowIndex;
}
Public Sub dataGridView1_RowContextMenuStripNeeded( _
    ByVal sender As Object, _
    ByVal e As DataGridViewRowContextMenuStripNeededEventArgs) _
    Handles dataGridView1.RowContextMenuStripNeeded

    Dim dataGridViewRow1 As DataGridViewRow = _
    dataGridView1.Rows(e.RowIndex)

    toolStripMenuItem1.Enabled = True

    ' Show the appropriate ContextMenuStrip based on the employees title.
    If dataGridViewRow1.Cells("Title").Value.ToString() = _
        "Sales Manager" OrElse _
        dataGridViewRow1.Cells("Title").Value.ToString() = _
        "Vice President, Sales" Then

        e.ContextMenuStrip = managerMenuStrip
    Else
        e.ContextMenuStrip = employeeMenuStrip
    End If

    contextMenuRowIndex = e.RowIndex
End Sub

Keterangan

Peristiwa RowContextMenuStripNeeded hanya terjadi ketika DataGridView properti kontrol DataSource diatur atau propertinya VirtualMode adalah true. Menangani RowContextMenuStripNeeded peristiwa berguna saat Anda ingin menampilkan menu pintasan yang ditentukan oleh status baris saat ini atau nilai yang dikandungnya.

Saat Anda menangani RowContextMenuStripNeeded peristiwa, menu pintasan yang Anda tentukan di handler ditampilkan setiap kali pengguna mengklik kanan baris kecuali CellContextMenuStripNeeded jika mengambil alih menu pintasan untuk sel tertentu yang diklik.

Peristiwa ini RowContextMenuStripNeeded juga terjadi setiap kali nilai DataGridViewRow.ContextMenuStrip properti diambil, baik secara terprogram atau saat pengguna mengklik kanan baris.

Anda bisa menggunakan DataGridViewRowContextMenuStripNeededEventArgs.RowIndex properti untuk menentukan status baris atau nilai yang dikandungnya, dan menggunakan informasi ini untuk mengubah atau mengubah DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip properti. Properti ini diinisialisasi dengan nilai properti baris ContextMenuStrip , yang diambil alih nilai peristiwa.

RowContextMenuStripNeeded Tangani peristiwa saat bekerja dengan data dalam jumlah besar untuk menghindari penalti performa pengaturan nilai baris ContextMenuStrip untuk beberapa baris. Untuk informasi selengkapnya, lihat Praktik Terbaik untuk Menskalakan Kontrol Formulir Windows DataGridView.

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

Saat membuat DataGridViewRowContextMenuStripNeededEventHandler delegasi, Anda mengidentifikasi metode yang akan menangani peristiwa. Untuk mengaitkan peristiwa dengan penanganan aktivitas Anda, tambahkan instans delegasi ke peristiwa. Penanganan aktivitas dipanggil setiap kali peristiwa terjadi, kecuali Jika Anda menghapus delegasi. Untuk informasi selengkapnya tentang delegasi penanganan aktivitas, lihat Menangani dan Meningkatkan Peristiwa.

Metode Ekstensi

GetMethodInfo(Delegate)

Mendapatkan objek yang mewakili metode yang diwakili oleh delegasi yang ditentukan.

Berlaku untuk

Lihat juga