当用户从特定单元格的上下文菜单中选择“复制”时,如何将数据网格单元格的内容复制到剪贴板?
public Form1()
{
InitializeComponent();
dataGridView1.MouseClick += dataGridView1_MouseClick;
}
void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
ContextMenu m = new ContextMenu();
m.MenuItems.Add(new MenuItem("Copy"));
int currentMouseOuverRow = dataGridView1.HitTest(e.X, e.Y).RowIndex;
m.Show(dataGridView1, new Point(e.X, e.Y));
}
}
我想我要做的是:
var hitTestInfo = dataGridView1.HitTest(e.X, e.Y);
if (hitTestInfo.Type != DataGridViewHitTestType.Cell) { return; }
var mi = new MenuItem("Copy")
mi.Tag = hitTestInfo;
mi.Click += (s, e) =>
{
var hti = ((MenuItem)s).Tag as HitTestInfo;
var val = dataGridView1.Rows[hti.RowIndex].Cells[hti.ColumnIndex].Value;
Clipboard.SetData(DataFormats.Text, val);
}
m.MenuItems.Add(mi);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句