Partager via


DataGridViewRow.ContextMenuStrip Propriété

Définition

Obtient ou définit le menu contextuel de 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é

Associé ContextMenuStrip au fichier actif DataGridViewRow. La valeur par défaut est null.

Exceptions

Lorsque vous obtenez la valeur de cette propriété, la ligne se trouve dans un DataGridView contrôle 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 large 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 affiché 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é de ligne ContextMenuStrip remplace le menu contextuel de la cellule spécifique qui a été cliquée.

Lorsque la DataGridView propriété de contrôle DataSource est définie ou sa VirtualMode propriété 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 nullpar défaut .

La gestion de l’événement RowContextMenuStripNeeded est principalement utile lors de l’utilisation de grandes quantités de données pour éviter les pénalités de performances lors de la 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.

La modification de cette propriété déclenche l’événement RowContextMenuStripChanged sur le propriétaire DataGridView, s’il en existe un.

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