DataGridView.RowContextMenuStripNeeded DataGridView.RowContextMenuStripNeeded DataGridView.RowContextMenuStripNeeded DataGridView.RowContextMenuStripNeeded Event

Definition

Tritt ein, wenn das Kontextmenü einer Zeile benötigt wird.Occurs when a row's shortcut menu is needed.

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 

Beispiele

Im folgenden Codebeispiel wird das RowContextMenuStripNeeded -Ereignis behandelt, ContextMenuStrip um einen basierend auf dem Titel des Mitarbeiters bereitzustellen.The following code example handles the RowContextMenuStripNeeded event to provide a ContextMenuStrip based on the title of the employee. In diesem Beispiel gibt es zwei Kontextmenüs: einen für Manager und einen für alle anderen Mitarbeiter.In this example, there are two shortcut menus, one for managers and one for all other employees.

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

Hinweise

Das RowContextMenuStripNeeded Ereignis tritt nur auf, DataGridView Wenn DataSource die Steuerelement Eigenschaft fest VirtualMode gelegt ist trueoder die-Eigenschaft ist.The RowContextMenuStripNeeded event occurs only when the DataGridView control DataSource property is set or its VirtualMode property is true. Das behandeln RowContextMenuStripNeeded des Ereignisses ist hilfreich, wenn Sie ein Kontextmenü anzeigen möchten, das durch den aktuellen Status einer Zeile oder die darin enthaltenen Werte bestimmt wird.Handling the RowContextMenuStripNeeded event is useful when you want to display a shortcut menu determined by a row's current state or the values it contains.

Wenn Sie das RowContextMenuStripNeeded -Ereignis behandeln, wird das Kontextmenü angezeigt, das Sie im-Handler angeben, wenn der Benutzer mit der rechten Maustaste CellContextMenuStripNeeded auf eine Zeile klickt, es sei denn, der überschreibt das Kontextmenü für die jeweilige Zelle, auf die geklickt wurde.When you handle the RowContextMenuStripNeeded event, the shortcut menu that you specify in the handler is shown whenever the user right-clicks a row unless the CellContextMenuStripNeeded overrides the shortcut menu for the specific cell that was clicked.

Das RowContextMenuStripNeeded Ereignis tritt auch auf, wenn der Wert DataGridViewRow.ContextMenuStrip der Eigenschaft entweder Programm gesteuert abgerufen wird oder wenn der Benutzer mit der rechten Maustaste auf eine Zeile klickt.The RowContextMenuStripNeeded event also occurs whenever the value of the DataGridViewRow.ContextMenuStrip property is retrieved, either programmatically or when the user right-clicks a row.

Sie können die- DataGridViewRowContextMenuStripNeededEventArgs.RowIndex Eigenschaft verwenden, um den Status einer Zeile oder die darin enthaltenen Werte zu ermitteln. verwenden Sie diese Informationen, um die DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip Eigenschaft zu ändern oder zu ändern.You can use the DataGridViewRowContextMenuStripNeededEventArgs.RowIndex property to determine the state of a row or the values it contains, and use this information to change or modify the DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip property. Diese Eigenschaft wird mit dem Wert der Zeilen ContextMenuStrip Eigenschaft initialisiert, den der Ereignis Wert überschreibt.This property is initialized with the value of the row ContextMenuStrip property, which the event value overrides.

Behandeln Sie RowContextMenuStripNeeded das-Ereignis bei der Arbeit mit großen Datenmengen, um die Leistungseinbußen beim Festlegen ContextMenuStrip des Zeilen Werts für mehrere Zeilen zu vermeiden.Handle the RowContextMenuStripNeeded event when working with large amounts of data to avoid the performance penalties of setting the row ContextMenuStrip value for multiple rows. Weitere Informationen finden Sie unter Empfohlene Vorgehensweisen für das Skalieren des DataGridView-Steuerelements in Windows Forms.For more information, see Best Practices for Scaling the Windows Forms DataGridView Control.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.For more information about how to handle events, see Handling and Raising Events.

Gilt für:

Siehe auch