如何在数据网格上创建上下文菜单并将该值复制到winform中

本文关键字:复制 winform 菜单 上下文 数据 数据网 网格 创建 | 更新日期: 2023-09-27 18:18:40

我看过很多解决方案,但我没有得到正确的答案。所有的答案都令人困惑。

contextMenu.MenuItems.Add(new MenuItem("Update", CopyClick));
DataGridViewCell ActiveCell = null;
private void CopyClick(object sender, EventArgs e)
{
   if (ActiveCell != null && ActiveCell.Value != null)
       Clipboard.SetText(ActiveCell.Value.ToString());
}

目前我正在使用上面的代码,它将复制当前单元格值,但我想喜欢-如果我选择任何一行并按下复制,然后it will copy only first value from the row

我该怎么做呢?

如何在数据网格上创建上下文菜单并将该值复制到winform中

希望这对你有帮助。

var str = YourDataGridView.Rows[ActiveCell.RowIndex].Cells[0].Value.ToString();
Clipboard.SetText(str);

使用以下代码段从选定的datagridview中复制第一项:

int ActiveRow = null;
private void Form1_Load(object sender, EventArgs e)
{
    this.dataGridView1.RowHeaderMouseClick += new DataGridViewCellMouseEventHandler(dataGridView1_RowHeaderMouseClick);
}
void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
    ActiveRow = e.RowIndex;
    if (e.Button == System.Windows.Forms.MouseButtons.Right)
    {
        contextMenuStrip1.Show();
        contextMenuStrip1.Items[0].Click += new EventHandler(Copy_Click);
    }
}
void Copy_Click(object sender, EventArgs e)
{
    if(ActiveRow!=null)
        Clipboard.SetText(dataGridView1.Rows[ActiveRow].Cells[0].ToString());
}