DataGridView右键菜单/复制示例?

11

我在表单上有一个DataGridView(dgv1)。 在特定单元格中,我希望用户能够右键单击并选择“复制”以将单元格内容复制到剪贴板。 有没有人可以指导我如何在C#中实现这个功能?

谢谢!

2个回答

19
你可以使用ContextMenuStrip来实现这个功能。(或者在VS2k5之前使用ContextMenu) 来自本文的摘录:
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;

以上链接中有更多信息。

以下是与答案相关但未包含在提供的链接中的内容:private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { row = e.RowIndex; col = e.ColumnIndex; } - Randall Flagg

2
您可能想在右键单击时创建一个上下文菜单,以供复制选项使用。
在datagridview属性中的右键事件处理程序中,您可以链接这个上下文菜单。
在点击复制后,您可以使用另一个函数来设置Clipboard.settext(Datagriditem.value),将数据放入剪贴板中。
这个链接可以帮助您找到正确的右键菜单。 datagridview的右键上下文菜单 并使用Clipboard.Setdataobject将数据传送到剪贴板中。

1
出于好奇,为什么这被设置为答案?我只是觉得@Kashinath Shenoy提供的代码示例很好。 - Paul C
糟糕!你是正确的!我实际上以为我选择了Kashinath的答案。显然,我点错了答案。最终我在我的代码中使用了Kashinath的示例。 - Kevin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接