DataGridViewRowContextMenuStripNeededEventHandler Delegera

Definition

Representerar den metod som ska hantera RowContextMenuStripNeeded händelsen för en 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)

Parametrar

sender
Object

Källan till händelsen.

Exempel

I följande kodexempel RowContextMenuStripNeeded hanteras händelsen för att tillhandahålla en ContextMenuStrip baserat på den anställdes titel. I det här exemplet finns det två snabbmenyer, en för chefer och en för alla andra anställda.

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

Kommentarer

Händelsen RowContextMenuStripNeeded inträffar endast när kontrollegenskapen DataGridViewDataSource har angetts eller dess VirtualMode egenskap är true. RowContextMenuStripNeeded Att hantera händelsen är användbart när du vill visa en snabbmeny som bestäms av en rads aktuella tillstånd eller de värden som den innehåller.

När du hanterar RowContextMenuStripNeeded händelsen visas snabbmenyn som du anger i hanteraren när användaren högerklickar på en rad om inte CellContextMenuStripNeeded åsidosätter snabbmenyn för den specifika cell som klickades.

Händelsen RowContextMenuStripNeeded inträffar också när värdet för DataGridViewRow.ContextMenuStrip egenskapen hämtas, antingen programmatiskt eller när användaren högerklickar på en rad.

Du kan använda DataGridViewRowContextMenuStripNeededEventArgs.RowIndex egenskapen för att fastställa tillståndet för en rad eller de värden den innehåller och använda den här informationen för att ändra eller ändra DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip egenskapen. Den här egenskapen initieras med värdet för radegenskapen ContextMenuStrip , som händelsevärdet åsidosätter.

Hantera händelsen RowContextMenuStripNeeded när du arbetar med stora mängder data för att undvika prestandastraff för att ange radvärdet ContextMenuStrip för flera rader. Mer information finns i Best Practices for Scaling the Windows Forms DataGridView Control.

Mer information om hur du hanterar händelser finns i Hantera och höja händelser.

När du skapar ett DataGridViewRowContextMenuStripNeededEventHandler ombud identifierar du den metod som ska hantera händelsen. Om du vill associera händelsen med händelsehanteraren lägger du till en instans av ombudet till händelsen. Händelsehanteraren anropas när händelsen inträffar, såvida du inte tar bort ombudet. Mer information om ombud för händelsehanterare finns i Hantera och höja händelser.

Tilläggsmetoder

Name Description
GetMethodInfo(Delegate)

Hämtar ett objekt som representerar den metod som representeras av det angivna ombudet.

Gäller för

Se även