在DataGridView的SelectionMode為FullRowSelect的情況下,按Ctrl+c會復制整行紀錄。怎樣在按Ctrl+C的情況下,復制選擇的單元格內容?

解决方案 »

  1.   

    那最好把SelectionMode改为:
    DataGridViewSelectionMode.RowHeaderSelect;这样就可以选择单元格
      

  2.   

    this.dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
      

  3.   

    this.dataGridView1.SelectionMode = DataGridViewSelectionMode.CellSelect;
                //or
                //this.dataGridView1.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect;
      

  4.   

    因為需求,所以不能更改this.dataGridView1.SelectionMode 為CellSelect或者其他。
    有沒其他的實現方法?
      

  5.   

    //不带表头
    DataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;试下不就出来了
      

  6.   

    程序中重新设置Ctrl+C的案件功能,当事件发生的时候确定单元格,然后copy盗窃剪切板。
      

  7.   

    1、设置dataGridView1的剪切板复制模式为Disable(可在设计器属性中修改也可在Load方法中设置)
    this.dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable;
    2、捕获Ctrl+C按键,手动设置剪切板内容
    private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Control && e.KeyCode == Keys.C)
        {
             //向剪切板中写入当前单元格的内容(若为空赋值为空格,否则报错)
             string cellText = (dataGridView1.CurrentCell.Value == DBNull.Value ? " " : dataGridView1.CurrentCell.Value.ToString().Trim());
             Clipboard.SetText(cellText);
        }
    }