Auf Englisch lesen

Freigeben über


DataGridView.RowContextMenuStripNeeded Ereignis

Definition

Tritt ein, wenn das Kontextmenü einer Zeile benötigt wird.

C#
public event System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler RowContextMenuStripNeeded;
C#
public event System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler? RowContextMenuStripNeeded;

Ereignistyp

Beispiele

Im folgenden Codebeispiel wird das RowContextMenuStripNeeded Ereignis verarbeitet, das basierend auf dem Titel des Mitarbeiters bereitgestellt ContextMenuStrip werden soll. In diesem Beispiel gibt es zwei Kontextmenüs, eines für Manager und eines für alle anderen Mitarbeiter.

C#
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;
}

Hinweise

Das RowContextMenuStripNeeded Ereignis tritt nur auf, wenn die DataGridView Steuerelementeigenschaft DataSource festgelegt oder die VirtualMode -Eigenschaft ist true. Die Behandlung des RowContextMenuStripNeeded Ereignisses ist nützlich, wenn Sie ein Kontextmenü anzeigen möchten, das durch den aktuellen Zustand einer Zeile oder die darin enthaltenen Werte bestimmt wird.

Wenn Sie das RowContextMenuStripNeeded Ereignis behandeln, wird das Kontextmenü angezeigt, das Sie im Handler angeben, wenn der Benutzer mit der rechten Maustaste auf eine Zeile klickt, es sei denn, das CellContextMenuStripNeeded Kontextmenü für die bestimmte Zelle überschreibt, auf die geklickt wurde.

Das RowContextMenuStripNeeded Ereignis tritt auch auf, wenn der Wert der DataGridViewRow.ContextMenuStrip Eigenschaft abgerufen wird, entweder programmgesteuert oder wenn der Benutzer mit der rechten Maustaste auf eine Zeile klickt.

Sie können die DataGridViewRowContextMenuStripNeededEventArgs.RowIndex -Eigenschaft verwenden, um den Zustand einer Zeile oder der darin enthaltenen Werte zu bestimmen und diese Informationen verwenden, um die DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip Eigenschaft zu ändern oder zu ändern. Diese Eigenschaft wird mit dem Wert der Zeileneigenschaft ContextMenuStrip initialisiert, die vom Ereigniswert außer Kraft gesetzt wird.

Behandeln Sie das RowContextMenuStripNeeded Ereignis, wenn Sie mit großen Datenmengen arbeiten, um Leistungseinbußen beim Festlegen des Zeilenwerts ContextMenuStrip für mehrere Zeilen zu vermeiden. Weitere Informationen finden Sie unter Empfohlene Vorgehensweisen für das Skalieren des DataGridView-Steuerelements in Windows Forms.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.

Gilt für:

Produkt Versionen
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Weitere Informationen