El evento CellContextMenuStripNeeded sólo se produce cuando se establece la propiedad DataSource del control DataGridView o cuando su propiedad VirtualMode es true.
Cuando controla el evento CellContextMenuStripNeeded, aparecerá el menú contextual que especifique en el controlador siempre que el usuario haga clic con el botón secundario del mouse (ratón) en una celda. Esto es útil cuando desea mostrar menús contextuales determinados por el estado o el valor actual de una celda.
El evento CellContextMenuStripNeeded también se produce siempre que se recupera el valor de la propiedad DataGridViewCell..::.ContextMenuStrip, ya sea mediante programación o cuando el usuario haga clic con el botón secundario del mouse en la celda.
Puede utilizar las propiedades ColumnIndex y RowIndex para determinar el estado o el valor de una celda, y utilizar esta información para establecer la propiedad ContextMenuStrip. Esta propiedad se inicializa con el valor de la propiedad ContextMenuStrip de la celda, que es reemplazado por el valor del evento.
Controle el evento CellContextMenuStripNeeded cuando trabaje con grandes volúmenes de datos con el fin de evitar penalizaciones en el rendimiento al establecer el valor de la propiedad ContextMenuStrip para varias celdas. Para obtener más información, vea Procedimientos recomendados para ajustar la escala del control DataGridView en formularios Windows Forms.
También puede especificar menús contextuales para filas individuales en lugar de para celdas individual estableciendo la propiedad ContextMenuStrip de la fila o controlando el evento RowContextMenuStripNeeded del control DataGridView. El valor de la propiedad ContextMenuStrip de la celda reemplaza el valor de la propiedad ContextMenuStrip de la celda, y el evento CellContextMenuStripNeeded reemplaza el valor de la propiedadRowContextMenuStripNeeded del evento y el valor de la propiedad ContextMenuStrip de la fila. Puede especificar nullNothingnullptrreferencia null (Nothing en Visual Basic) para un menú contextual de celda, sin embargo, para evitar que se reemplace un menú contextual de fila.
Para obtener más información sobre la forma de controlar eventos, vea Utilizar eventos.
Cuando se crea un delegado de DataGridViewCellContextMenuStripNeededEventHandler, 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.