DataGridViewRow.ContextMenuStrip Propiedad

Definición

Obtiene o establece el menú contextual para la fila.Gets or sets the shortcut menu for the row.

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; }
member this.ContextMenuStrip : System.Windows.Forms.ContextMenuStrip with get, set
Public Overrides Property ContextMenuStrip As ContextMenuStrip

Valor de propiedad

ContextMenuStrip

ContextMenuStrip asociado a la columna DataGridViewRow actual.The ContextMenuStrip associated with the current DataGridViewRow. El valor predeterminado es null.The default is null.

Excepciones

Al obtener el valor de esta propiedad, la fila está en un control DataGridView y es una fila compartida.When getting the value of this property, the row is in a DataGridView control and is a shared row.

Ejemplos

En el ejemplo de código siguiente se muestra cómo utilizar la DataGridViewColumn.ContextMenuStrip propiedad, que es prácticamente idéntica a la ContextMenuStrip propiedad de la DataGridViewRow clase.The following code example demonstrates how to use the DataGridViewColumn.ContextMenuStrip property, which is nearly identical to the ContextMenuStrip property of the DataGridViewRow class. Este ejemplo de código forma parte de un ejemplo de código más grande proporcionado en la DataGridViewColumn clase.This code example is part of a larger code example provided in the DataGridViewColumn class.

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

Comentarios

Esta propiedad indica el menú contextual que se muestra cuando el usuario hace clic con el botón secundario en la fila, a menos DataGridView que el evento de control CellContextMenuStripNeeded o la propiedad de fila ContextMenuStrip invalide el menú contextual de la celda específica en la que se hizo clic.This property indicates the shortcut menu that is displayed when the user right-clicks the row unless the DataGridView control CellContextMenuStripNeeded event or the row ContextMenuStrip property overrides the shortcut menu for the specific cell that was clicked.

Cuando DataGridView DataSource se establece la propiedad control o su VirtualMode propiedad es true , al obtener el valor de la ContextMenuStrip propiedad se genera el RowContextMenuStripNeeded evento del control y se devuelve el valor de la DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip propiedad tal y como se especifica en el controlador de eventos.When the DataGridView control DataSource property is set or its VirtualMode property is true, getting the value of the ContextMenuStrip property raises the RowContextMenuStripNeeded event of the control and returns the value of the DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip property as specified in the event handler. Si no hay ningún controlador para el evento, al obtener el valor de la ContextMenuStrip propiedad se devuelve el valor especificado anteriormente o su valor predeterminado null .If there are no handlers for the event, getting the value of the ContextMenuStrip property returns the previously specified value or its default value of null.

Controlar el RowContextMenuStripNeeded evento es especialmente útil cuando se trabaja con grandes cantidades de datos para evitar penalizaciones de rendimiento al establecer el ContextMenuStrip valor de fila de varias filas.Handling the RowContextMenuStripNeeded event is primarily useful when working with large amounts of data to avoid performance penalties when setting the row ContextMenuStrip value for multiple rows. Para obtener más información, consulte Procedimientos recomendados para ajustar la escala del control DataGridView en Windows Forms.For more information, see Best Practices for Scaling the Windows Forms DataGridView Control.

Si se cambia esta propiedad, se genera el RowContextMenuStripChanged evento en el propietario DataGridView , si existe.Changing this property raises the RowContextMenuStripChanged event on the owning DataGridView, if one exists.

Si la fila actual está compartida, utilice el GetContextMenuStrip método en lugar de obtener el valor de esta propiedad.If the current row is shared, use the GetContextMenuStrip method rather than getting the value of this property.

Se aplica a

Consulte también