Esta documentación está archivada y no tiene mantenimiento.

DataGridView.RowContextMenuStripNeeded (Evento)

Se produce cuando se necesita el menú contextual de una fila.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public event DataGridViewRowContextMenuStripNeededEventHandler RowContextMenuStripNeeded
/** @event */
public void add_RowContextMenuStripNeeded (DataGridViewRowContextMenuStripNeededEventHandler value)

/** @event */
public void remove_RowContextMenuStripNeeded (DataGridViewRowContextMenuStripNeededEventHandler value)

En JScript, se pueden controlar los eventos que define una clase, pero no se pueden definir unos propios.
No aplicable.

El evento RowContextMenuStripNeeded sólo se produce cuando se establece la propiedad DataSource del control DataGridView o cuando su propiedad VirtualMode es true. Controlar el evento RowContextMenuStripNeeded es útil cuando se desea mostrar un menú contextual determinado por el estado actual de una fila o los valores que contiene.

Cuando se controla el evento RowContextMenuStripNeeded, se muestra el menú contextual especificado en el controlador siempre que el usuario hace clic con el botón secundario en una fila, a menos que CellContextMenuStripNeeded reemplace el menú contextual para la celda concreta en la que se hizo clic.

El evento RowContextMenuStripNeeded también se producirá siempre que se recupere el valor de la propiedad DataGridViewRow.ContextMenuStrip mediante programación o cuando el usuario haga clic con el botón secundario en una fila.

Puede utilizar la propiedad DataGridViewRowContextMenuStripNeededEventArgs.RowIndex para determinar el estado de una fila o los valores que contiene, y utilizar esta información para cambiar o modificar la propiedad DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip. Esta propiedad se inicializa con el valor de la propiedad ContextMenuStrip de la fila, que es reemplazado por el valor del evento.

Controle el evento RowContextMenuStripNeeded cuando trabaje con grandes volúmenes de datos para evitar penalizaciones de rendimiento al establecer el valor de la fila ContextMenuStrip para varias filas. Para obtener más información, vea Procedimientos recomendados para ajustar la escala del control DataGridView en formularios Windows Forms.

Para obtener más información sobre el control de eventos, vea Utilizar eventos.

El ejemplo de código siguiente controla el evento RowContextMenuStripNeeded para proporcionar un objeto ContextMenuStrip basado en el título del empleado. En este ejemplo hay dos menús contextuales, uno para administradores y otro para los demás empleados.

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;
}

Windows 98, Windows 2000 Service Pack 4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
Mostrar: