2011-08-24 36 views
7

Ho un DataGridView (dgv1) sul mio modulo. In una cella particolare, mi piacerebbe che l'utente fosse in grado di fare clic con il tasto destro e scegliere "COPIA" per copiare il contenuto della cella negli appunti. Qualcuno può indicarmi la direzione di un tutorial o di un sito che mostra come realizzare questo in C#?DataGridView tasto destro del mouse/copia esempio?

Grazie!

risposta

15

È possibile utilizzare ContextMenuStrip per ottenere ciò. (O ContextMenu per il 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; 

Ci sono più informazioni sul link qui sopra.

+0

Solo questo mancava dalla risposta (ma è nel collegamento fornito): private void dataGridView1_CellMouseDown (mittente dell'oggetto, DataGridViewCellMouseEventArgs e) { row = e.RowIndex; col = e.ColumnIndex; } –

2

Si potrebbe voler creare un contextmenustrip per l'opzione COPIA quando si fa clic con il tasto destro.

E nelle proprietà datagridview nell'handler di eventi rightclick, si collega questo contextmenustrip.

E facendo clic su copia, si ha un'altra funzione in cui si dice Clipboard.SetText (Datagriditem.value)

Questo collegamento dovrebbe aiutare a capire come ottenere il menu del tasto destro.

right click context menu for datagridview

e utilizzare il Clipboard.Setdataobject per ottenere i dati nella clipboard.

+1

Per motivi di interesse, perché questo set era la risposta, ho solo pensato @Kashinath Shenoy dare un esempio di codice era bello? – Coops

+0

Whoops! Hai ragione! In realtà pensavo di aver scelto la risposta di Kashinath. Apparentemente, ho fatto clic sulla risposta sbagliata. Ho finito per usare l'esempio di Kashinath nel mio codice. – Kevin

Problemi correlati