Copy datagridview cell content to clipboard in FullRowSelect Mode

c#, datagridview, winforms

Solution

If you are having the `SelectionMode` property as `FullRowSelect` then copy functionality of `DataGridView` will copy the entire row. Change the value to `CellSelect`. Set the below properties to copy only the cell content.

dataGridView1.SelectionMode = DataGridViewSelectionMode.CellSelect;
dataGridView1.MultiSelect = false;

If you want to retain the `FullRowSelect` selection mode, then do like below..

 void contextMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
    {
        if (e.ClickedItem.Text == "Copy" && dataGridView1.CurrentCell.Value != null)
        {
            Clipboard.SetDataObject(dataGridView1.CurrentCell.Value.ToString(), false);
        }
    }

 void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right && e.ColumnIndex != -1 && e.RowIndex != -1)
        {
            dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].ContextMenuStrip = contextMenu;
            dataGridView1.CurrentCell = myDGV.Rows[e.RowIndex].Cells[e.ColumnIndex];
        }
    }

Problem

I have a winform datagridview to show customer details and it has a context menu. And I have set the datagridview selection Mode to "FullRowSelect". What i want is i want to copy the content of the clicked cell content to the clipboard. Not the whole row content. Just the cell content. I have used the following code to show the Context Menu when it right click on the datagridview and select the row. ``` private void dgvCusList_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { if (e.RowIndex != -1 && e.ColumnIndex != -1) { if (e.Button == MouseButtons.Right) { DataGridViewCell clickedCell = (sender as DataGridView).Rows[e.RowIndex].Cells[e.ColumnIndex]; this.dgvCusList.CurrentCell = clickedCell; var relativeMousePosition = dgvCusList.PointToClient(Cursor.Position); this.cnxtMnuCusResult.Show(dgvCusList, relativeMousePosition); } } } ``` I want to copy the the cell content to clipboard when i click copy menu item in my context menu. Please help me to solove this matter. Thanks in advance. :)

Original source