DataGridView.RowContextMenuStripNeeded Gebeurtenis

Definitie

Treedt op wanneer het snelmenu van een rij nodig is.

public:
 event System::Windows::Forms::DataGridViewRowContextMenuStripNeededEventHandler ^ RowContextMenuStripNeeded;
public event System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler RowContextMenuStripNeeded;
public event System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler? RowContextMenuStripNeeded;
member this.RowContextMenuStripNeeded : System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler 
Public Custom Event RowContextMenuStripNeeded As DataGridViewRowContextMenuStripNeededEventHandler 

Gebeurtenistype

Voorbeelden

In het volgende codevoorbeeld wordt de RowContextMenuStripNeeded gebeurtenis verwerkt om een ContextMenuStrip op basis van de titel van de werknemer op te geven. In dit voorbeeld zijn er twee snelmenu's, één voor managers en één voor alle andere werknemers.

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

Opmerkingen

De RowContextMenuStripNeeded gebeurtenis treedt alleen op wanneer de eigenschap van het DataGridView besturingselement DataSource is ingesteld of de VirtualMode eigenschap is true. Het afhandelen van de RowContextMenuStripNeeded gebeurtenis is handig wanneer u een snelmenu wilt weergeven dat wordt bepaald door de huidige status van een rij of de waarden die deze bevat.

Wanneer u de gebeurtenis afhandelt, wordt het snelmenu dat u opgeeft in de handler weergegeven wanneer de gebruiker met de RowContextMenuStripNeeded rechtermuisknop op een rij klikt, tenzij het CellContextMenuStripNeeded snelmenu voor de specifieke cel waarop is geklikt, wordt overschreven.

De RowContextMenuStripNeeded gebeurtenis treedt ook op wanneer de waarde van de DataGridViewRow.ContextMenuStrip eigenschap wordt opgehaald, programmatisch of wanneer de gebruiker met de rechtermuisknop op een rij klikt.

U kunt de DataGridViewRowContextMenuStripNeededEventArgs.RowIndex eigenschap gebruiken om de status van een rij of de waarden die deze bevat te bepalen en deze informatie te gebruiken om de DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip eigenschap te wijzigen of te wijzigen. Deze eigenschap wordt geïnitialiseerd met de waarde van de rijeigenschap ContextMenuStrip , die de gebeurteniswaarde overschrijft.

RowContextMenuStripNeeded De gebeurtenis afhandelen wanneer u met grote hoeveelheden gegevens werkt om de prestatiestraffen te voorkomen bij het instellen van de rijwaarde ContextMenuStrip voor meerdere rijen. Zie Best practices voor het schalen van het Windows Forms DataGridView-besturingselement voor meer informatie.

Zie Gebeurtenissen verwerken en genereren voor meer informatie over het afhandelen van gebeurtenissen.

Van toepassing op

Zie ook