Partager via


DataGridView.RowContextMenuStripNeeded Événement

Définition

Se produit lorsque le menu contextuel d’une ligne est nécessaire.

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 

Type d'événement

Exemples

L’exemple de code suivant gère l’événement RowContextMenuStripNeeded pour fournir un ContextMenuStrip titre de l’employé. Dans cet exemple, il existe deux menus contextuels, un pour les responsables et un pour tous les autres employés.

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

Remarques

L’événement RowContextMenuStripNeeded se produit uniquement lorsque la DataGridView propriété de contrôle DataSource est définie ou que sa VirtualMode propriété est true. La gestion de l’événement RowContextMenuStripNeeded est utile lorsque vous souhaitez afficher un menu contextuel déterminé par l’état actuel d’une ligne ou les valeurs qu’elle contient.

Lorsque vous gérez l’événement RowContextMenuStripNeeded , le menu contextuel que vous spécifiez dans le gestionnaire s’affiche chaque fois que l’utilisateur clique avec le bouton droit sur une ligne, sauf si le CellContextMenuStripNeeded menu contextuel remplace le menu contextuel de la cellule spécifique qui a été cliquée.

L’événement RowContextMenuStripNeeded se produit également chaque fois que la valeur de la DataGridViewRow.ContextMenuStrip propriété est récupérée, par programme ou lorsque l’utilisateur clique avec le bouton droit sur une ligne.

Vous pouvez utiliser la DataGridViewRowContextMenuStripNeededEventArgs.RowIndex propriété pour déterminer l’état d’une ligne ou des valeurs qu’elle contient et utiliser ces informations pour modifier ou modifier la DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip propriété. Cette propriété est initialisée avec la valeur de la propriété de ligne ContextMenuStrip , que la valeur d’événement remplace.

Gérez l’événement RowContextMenuStripNeeded lors de l’utilisation de grandes quantités de données pour éviter les pénalités de performances de définition de la valeur de ligne ContextMenuStrip pour plusieurs lignes. Pour plus d’informations, consultez Les meilleures pratiques pour la mise à l’échelle du contrôle DataGridView Windows Forms.

Pour plus d’informations sur la gestion des événements, consultez Gestion et déclenchement d’événements.

S’applique à

Voir aussi