2011-08-24 165 views
7

我的窗體上有一個DataGridView(dgv1)。在特定的單元格中,我希望用戶能夠右鍵單擊並選擇「複製」以將單元格的內容複製到剪貼板。任何人都可以指向我的教程或網站的方向,顯示如何在C#中完成此操作?DataGridView右鍵菜單/複製示例?

謝謝!

回答

15

您可以使用ContextMenuStrip來完成此操作。 (或文本菜單用於預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; 

有上述鏈路上的詳細信息。

+0

只有這個從答案中丟失(但在提供的鏈接中):private void dataGridView1_CellMouseDown(object sender,DataGridViewCellMouseEventArgs e) {row = e.RowIndex; col = e.ColumnIndex; } –

2

當您右鍵單擊時,您可能需要爲COPY選項創建一個contextmenustrip。

而在右鍵單擊事件處理程序的datagridview屬性中,可以鏈接此contextmenustrip。

而就點擊副本,你有,你說Clipboard.settext(Datagriditem.value)其他功能

這個鏈接應該幫助你找出如何讓右鍵菜單。

right click context menu for datagridview

,並使用Clipboard.Setdataobject的數據進入剪貼板。

+1

出於興趣,爲什麼是這個集合作爲答案,我只是認爲@Kashinath Shenoy給出了一個代碼示例很好? – Coops

+0

哎呀!你是對的!我實際上認爲我選擇了Kashinath的答案。顯然,我點了錯誤的答案。我最終在我的代碼中使用了Kashinath的例子。 – Kevin