Condividi tramite


DataGridViewRow.ContextMenuStrip Proprietà

Definizione

Ottiene o imposta il menu di scelta rapida della riga.

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

Valore della proprietà

Oggetto ContextMenuStrip associato all'oggetto DataGridViewRow corrente. Il valore predefinito è null.

Eccezioni

Durante l'ottenimento del valore di questa proprietà, la riga è in un controllo DataGridView ed è condivisa.

Esempio

Nell'esempio di codice seguente viene illustrato come usare la DataGridViewColumn.ContextMenuStrip proprietà , quasi identica alla ContextMenuStrip proprietà della DataGridViewRow classe . Questo esempio di codice fa parte di un esempio di codice più ampio fornito nella 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

Commenti

Questa proprietà indica il menu di scelta rapida visualizzato quando l'utente fa clic con il pulsante destro del mouse sulla riga, a meno che l'evento DataGridView del controllo CellContextMenuStripNeeded o la proprietà della riga ContextMenuStrip non sostituisci il menu di scelta rapida per la cella specifica selezionata.

Quando la proprietà del DataGridView controllo DataSource è impostata o la relativa VirtualMode proprietà è true, ottenere il valore della ContextMenuStrip proprietà genera l'evento RowContextMenuStripNeeded del controllo e restituisce il valore della DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip proprietà come specificato nel gestore eventi. Se non sono presenti gestori per l'evento, ottenere il valore della ContextMenuStrip proprietà restituisce il valore specificato in precedenza o il valore predefinito di null.

La gestione dell'evento RowContextMenuStripNeeded è particolarmente utile quando si usano grandi quantità di dati per evitare penalità per le prestazioni quando si imposta il valore di riga ContextMenuStrip per più righe. Per altre informazioni, vedere Procedure consigliate per ridimensionare il controllo DataGridView Windows Form.

Se si modifica questa proprietà, viene generato l'evento RowContextMenuStripChangedDataGridViewproprietario, se presente.

Se la riga corrente è condivisa, utilizzare il GetContextMenuStrip metodo anziché ottenere il valore di questa proprietà.

Si applica a

Vedi anche