DataGridViewRow.ContextMenuStrip Propriété

Définition

Obtient ou définit le menu contextuel pour la ligne.

public:
 virtual property System::Windows::Forms::ContextMenuStrip ^ ContextMenuStrip { System::Windows::Forms::ContextMenuStrip ^ get(); void set(System::Windows::Forms::ContextMenuStrip ^ value); };
public override System.Windows.Forms.ContextMenuStrip ContextMenuStrip { get; set; }
public override System.Windows.Forms.ContextMenuStrip? ContextMenuStrip { get; set; }
member this.ContextMenuStrip : System.Windows.Forms.ContextMenuStrip with get, set
Public Overrides Property ContextMenuStrip As ContextMenuStrip

Valeur de propriété

ContextMenuStrip associé au DataGridViewRow en cours. La valeur par défaut est null.

Exceptions

Lors de l'obtention de la valeur de cette propriété, la ligne est contenue dans un contrôle DataGridView et est une ligne partagée.

Exemples

L’exemple de code suivant montre comment utiliser la DataGridViewColumn.ContextMenuStrip propriété, qui est presque identique à la ContextMenuStrip propriété de la DataGridViewRow classe . Cet exemple de code fait partie d’un exemple de code plus volumineux fourni dans la DataGridViewColumn classe .

ToolStripMenuItem^ toolStripItem1;
void AddContextMenu()
{
   toolStripItem1->Text = L"Redden";
   toolStripItem1->Click += gcnew EventHandler( this, &DataGridViewColumnDemo::toolStripItem1_Click );
   System::Windows::Forms::ContextMenuStrip^ strip = gcnew System::Windows::Forms::ContextMenuStrip;
   IEnumerator^ myEnum = dataGridView->Columns->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      DataGridViewColumn^ column = safe_cast<DataGridViewColumn^>(myEnum->Current);
      column->ContextMenuStrip = strip;
      column->ContextMenuStrip->Items->Add( toolStripItem1 );
   }
}

DataGridViewCellEventArgs^ mouseLocation;

// Change the cell's color.
void toolStripItem1_Click( Object^ /*sender*/, EventArgs^ /*args*/ )
{
   dataGridView->Rows[ mouseLocation->RowIndex ]->Cells[ mouseLocation->ColumnIndex ]->Style->BackColor = Color::Red;
}


// Deal with hovering over a cell.
void dataGridView_CellMouseEnter( Object^ /*sender*/, DataGridViewCellEventArgs^ location )
{
   mouseLocation = location;
}
ToolStripMenuItem toolStripItem1 = new ToolStripMenuItem();

private void AddContextMenu()
{
    toolStripItem1.Text = "Redden";
    toolStripItem1.Click += new EventHandler(toolStripItem1_Click);
    ContextMenuStrip strip = new ContextMenuStrip();
    foreach (DataGridViewColumn column in dataGridView.Columns)
    {

        column.ContextMenuStrip = strip;
        column.ContextMenuStrip.Items.Add(toolStripItem1);
    }
}

private DataGridViewCellEventArgs mouseLocation;

// Change the cell's color.
private void toolStripItem1_Click(object sender, EventArgs args)
{
    dataGridView.Rows[mouseLocation.RowIndex]
        .Cells[mouseLocation.ColumnIndex].Style.BackColor
        = Color.Red;
}

// Deal with hovering over a cell.
private void dataGridView_CellMouseEnter(object sender,
    DataGridViewCellEventArgs location)
{
    mouseLocation = location;
}
WithEvents toolStripItem1 As New ToolStripMenuItem()

Private Sub AddContextMenu()
    toolStripItem1.Text = "Redden"
    Dim strip As New ContextMenuStrip()
    For Each column As DataGridViewColumn _
        In dataGridView.Columns()

        column.ContextMenuStrip = strip
        column.ContextMenuStrip.Items.Add(toolStripItem1)
    Next
End Sub
' Change the cell's color.
Private Sub toolStripItem1_Click(ByVal sender As Object, _
    ByVal args As EventArgs) _
    Handles toolStripItem1.Click

    dataGridView.Rows(mouseLocation.RowIndex) _
        .Cells(mouseLocation.ColumnIndex) _
        .Style.BackColor = Color.Red
End Sub

Private mouseLocation As DataGridViewCellEventArgs

' Deal with hovering over a cell.
Private Sub dataGridView_CellMouseEnter(ByVal sender As Object, _
    ByVal location As DataGridViewCellEventArgs) _
    Handles DataGridView.CellMouseEnter

    mouseLocation = location
End Sub

Remarques

Cette propriété indique le menu contextuel qui s’affiche lorsque l’utilisateur clique avec le bouton droit sur la ligne, sauf si l’événement DataGridView de contrôle CellContextMenuStripNeeded ou la propriété row ContextMenuStrip remplace le menu contextuel de la cellule spécifique sur laquelle on a cliqué.

Lorsque la DataGridView propriété de contrôle DataSource est définie ou que sa VirtualMode propriété est true, l’obtention de la valeur de la ContextMenuStrip propriété déclenche l’événement RowContextMenuStripNeeded du contrôle et retourne la valeur de la DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip propriété comme spécifié dans le gestionnaire d’événements. S’il n’existe aucun gestionnaire pour l’événement, l’obtention de la valeur de la ContextMenuStrip propriété retourne la valeur spécifiée précédemment ou sa valeur par défaut de null.

La gestion de l’événement RowContextMenuStripNeeded est principalement utile lors de l’utilisation de grandes quantités de données afin d’éviter des pénalités de performances lors de la définition de la valeur de ligne ContextMenuStrip pour plusieurs lignes. Pour plus d'informations, consultez Meilleures pratiques pour la mise à l'échelle du contrôle DataGridView Windows Forms.

La modification de cette propriété déclenche l’événement RowContextMenuStripChanged sur le propriétaire DataGridView, le cas échéant.

Si la ligne actuelle est partagée, utilisez la GetContextMenuStrip méthode plutôt que d’obtenir la valeur de cette propriété.

S’applique à

Voir aussi