Evaluar y enviar comentarios
MSDN
MSDN Library
 DataGridViewRowContextMenuStripNeed...
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2008/.NET Framework 3.5

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
DataGridViewRowContextMenuStripNeededEventHandler (Delegado)

Actualización: noviembre 2007

Representa el método que controlará el evento RowContextMenuStripNeeded de un control DataGridView.

Espacio de nombres:  System.Windows.Forms
Ensamblado:  System.Windows.Forms (en System.Windows.Forms.dll)
Visual Basic (Declaración)
Public Delegate Sub DataGridViewRowContextMenuStripNeededEventHandler ( _
    sender As Object, _
    e As DataGridViewRowContextMenuStripNeededEventArgs _
)
Visual Basic (Uso)
Dim instance As New DataGridViewRowContextMenuStripNeededEventHandler(AddressOf HandlerMethod)
C#
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(
    Object sender,
    DataGridViewRowContextMenuStripNeededEventArgs e
)
Visual C++
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(
    Object^ sender, 
    DataGridViewRowContextMenuStripNeededEventArgs^ e
)
J#
/** @delegate */
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(
    Object sender,
    DataGridViewRowContextMenuStripNeededEventArgs e
)
JScript
JScript no admite delegados.

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 por los valores que contiene.

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

El evento RowContextMenuStripNeeded también se produce siempre que se recupera el valor de la propiedad DataGridViewRow..::.ContextMenuStrip, bien mediante programación o bien cuando el usuario hace clic en una fila con el botón secundario del mouse.

Puede utilizar la propiedad DataGridViewRowContextMenuStripNeededEventArgs..::.RowIndex para determinar el estado de una fila o de los valores contiene, y usar 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 con el fin de evitar reducciones en el rendimiento al establecer el valor de la fila ContextMenuStrip para muchas 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 la forma de controlar eventos, vea Utilizar eventos.

Cuando se crea un delegado de DataGridViewRowContextMenuStripNeededEventHandler, se identifica el método que controlará el evento. Para asociar el evento a su controlador, agregue una instancia del delegado al evento. Siempre que se produce el evento, se llama a su controlador, a menos que se quite el delegado. Para obtener más información sobre los delegados de controladores de eventos, vea Eventos y delegados.

En el ejemplo de código siguiente, se 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 directores y uno para todos los demás empleados.

Visual Basic
Public Sub dataGridView1_RowContextMenuStripNeeded( _
    ByVal sender As Object, _
    ByVal e As DataGridViewRowContextMenuStripNeededEventArgs) _
    Handles dataGridView1.RowContextMenuStripNeeded

    Dim dataGridViewRow1 As DataGridViewRow = _
    dataGridView1.Rows(e.RowIndex)

    toolStripMenuItem1.Enabled = True

    ' Show the appropriate ContextMenuStrip based on the employees title.
    If dataGridViewRow1.Cells("Title").Value.ToString() = _
        "Sales Manager" OrElse _
        dataGridViewRow1.Cells("Title").Value.ToString() = _
        "Vice President, Sales" Then

        e.ContextMenuStrip = managerMenuStrip
    Else
        e.ContextMenuStrip = employeeMenuStrip
    End If

    contextMenuRowIndex = e.RowIndex
End Sub
C#
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 Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2012 Microsoft. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker