我有一个带有DataGridView控件的WINFORM应用程序,连接到ContextMenuStrip控件中。
ContextMenuStrip触发事件实质上在DataGridView和剪贴板之间执行复制/粘贴。
private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{
CopyClipboard();
}
private void CopyClipboard()
{
DataObject d = myGrid.GetClipboardContent();
Clipboard.SetDataObject(d);
}
private void pasteCtrlVToolStripMenuItem_Click(object sender, EventArgs e)
{
PasteClipboard();
}
我在我的应用程序中添加了另一个DataGridView并希望在它们之间共享ContextMenuStrip,因为根据我上面的代码,它被硬编码到我的网格myGrid中。
我相信修改我的代码以从发送者投射一个新的DataGridView控件将是一个简单的练习:
private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{
CopyClipboard(sender);
}
private void CopyClipboard(object sender)
{
var grid = (DataGridView)sender;
DataObject d = grid.GetClipboardContent();
Clipboard.SetDataObject(d);
}
private void pasteCtrlVToolStripMenuItem_Click(object sender, EventArgs e)
{
var grid = (DataGridView)sender;
PasteClipboard(grid);
}
但当然,我发现发件人是ToolStripMenuItem。
有没有办法通过sender或EventArgs e引用原始DataViewGrid?
并且,感谢您阅读 :)