2011-08-24 35 views

Respuesta

15

Puede usar ContextMenuStrip para lograr esto. (O ContextMenu para pre-VS2k5)

Excerpt from this article:

ContextMenuStrip mnu = new ContextMenuStrip(); 
ToolStripMenuItem mnuCopy = new ToolStripMenuItem("Copy"); 
ToolStripMenuItem mnuCut = new ToolStripMenuItem("Cut"); 
ToolStripMenuItem mnuPaste = new ToolStripMenuItem("Paste"); 
//Assign event handlers 
mnuCopy.Click += new EventHandler(mnuCopy_Click); 
mnuCut.Click += new EventHandler(mnuCut_Click); 
mnuPaste.Click += new EventHandler(mnuPaste_Click); 
//Add to main context menu 
mnu.Items.AddRange(new ToolStripItem[] { mnuCopy, mnuCut, mnuPaste}); 
//Assign to datagridview 
dataGridView1.ContextMenuStrip = mnu; 

Hay más información en el enlace anterior.

+0

Sólo faltaba esto en la respuesta (pero está en el enlace proporcionado): private void dataGridView1_CellMouseDown (remitente del objeto, DataGridViewCellMouseEventArgs e) { row = e.RowIndex; col = e.ColumnIndex; } –

2

Es posible que desee crear un contextmenustrip para la opción COPY cuando haga clic derecho.

Y en las propiedades datagridview en el controlador de eventos rightclick, enlaza este contextmenustrip.

Y al hacer clic en la copia, que tienen otra función en el que dice Clipboard.SetText (Datagriditem.value)

Este enlace debería ayudar a determinar cómo obtener el menú del botón derecho.

right click context menu for datagridview

Y el uso de la Clipboard.Setdataobject para obtener los datos en el portapapeles.

+1

Fuera de interés, ¿por qué se estableció esto como la respuesta, simplemente pensé que @Kashinath Shenoy dando un ejemplo de código era bueno? – Coops

+0

¡Vaya! ¡Estás en lo correcto! De hecho, pensé que había elegido la respuesta de Kashinath. Aparentemente, hice clic en la respuesta incorrecta. Terminé usando el ejemplo de Kashinath en mi código. – Kevin

Cuestiones relacionadas