DataGridViewRowContextMenuStripNeededEventHandler Delegat

Definicja

Reprezentuje metodę, która będzie obsługiwać RowContextMenuStripNeeded zdarzenie klasy 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)

Parametry

sender
Object

Źródło zdarzenia.

Przykłady

W poniższym przykładzie kodu zdarzenie jest obsługiwane w RowContextMenuStripNeeded celu udostępnienia elementu ContextMenuStrip na podstawie tytułu pracownika. W tym przykładzie istnieją dwa menu kontekstowe: jedno dla menedżerów i jedno dla wszystkich pozostałych pracowników.

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

Uwagi

Zdarzenie RowContextMenuStripNeeded występuje tylko wtedy, gdy właściwość kontrolki DataGridViewDataSource jest ustawiona lub jej VirtualMode właściwość to true. Obsługa RowContextMenuStripNeeded zdarzenia jest przydatna, gdy chcesz wyświetlić menu skrótów określone przez bieżący stan wiersza lub wartości, które zawiera.

Podczas obsługi RowContextMenuStripNeeded zdarzenia menu skrótów określone w procedurze obsługi jest wyświetlane za każdym razem, gdy użytkownik kliknie wiersz prawym przyciskiem myszy, chyba że CellContextMenuStripNeeded zastąpi menu skrótów dla określonej komórki, która została kliknięta.

Zdarzenie RowContextMenuStripNeeded występuje również za każdym razem, gdy wartość DataGridViewRow.ContextMenuStrip właściwości jest pobierana programowo lub gdy użytkownik kliknie wiersz prawym przyciskiem myszy.

Możesz użyć DataGridViewRowContextMenuStripNeededEventArgs.RowIndex właściwości , aby określić stan wiersza lub wartości, które zawiera, i użyć tych informacji, aby zmienić lub zmodyfikować DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip właściwość. Ta właściwość jest inicjowana z wartością właściwości wiersza ContextMenuStrip , która zastępuje wartość zdarzenia.

RowContextMenuStripNeeded Obsłuż zdarzenie podczas pracy z dużą ilością danych, aby uniknąć kar za wydajność ustawiania wartości wiersza ContextMenuStrip dla wielu wierszy. Aby uzyskać więcej informacji, zobacz Best Practices for Scaling the Windows Forms DataGridView Control (Najlepsze rozwiązania dotyczące skalowania kontrolki DataGridView).

Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.

Podczas tworzenia delegata DataGridViewRowContextMenuStripNeededEventHandler należy zidentyfikować metodę, która będzie obsługiwać zdarzenie. Aby skojarzyć zdarzenie z programem obsługi zdarzeń, dodaj wystąpienie delegata do zdarzenia. Program obsługi zdarzeń jest wywoływany przy każdym wystąpieniu zdarzenia, o ile nie usunięto delegata. Aby uzyskać więcej informacji na temat delegatów programu obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.

Metody rozszerzania

GetMethodInfo(Delegate)

Pobiera obiekt reprezentujący metodę reprezentowaną przez określonego delegata.

Dotyczy

Zobacz też