当DataGridView.SelectionMode为FullRowSelect时,剪贴板复制失败

时间:2012-08-01 08:50:19

标签: c# winforms datagridview

在Windows窗体中,如果我创建一个包含几行和多列的简单DataGridView控件,然后将SelectionMode属性设置为FullRowSelect,我会使用剪贴板的复制功能出现奇怪的行为:

当选择一行并且用户点击ctrl-c时,整个行将被复制到剪贴板,单元格之间带有\ t字符,如预期的那样。

当用户双击并编辑单个单元格时,在该单元格内部用户选择文本的一部分并点击ctrl-c,STILL将复制整行,而不是所选文本的部分! / p>

作为一种解决方法,我尝试在keydown事件上执行剪贴板复制,但是当编辑控件处于编辑模式时不会触发事件。

有什么建议吗?

1 个答案:

答案 0 :(得分:7)

as workarround:

编辑时禁用剪贴板副本

  private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
    {
        this.dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable;
    }

    private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        this.dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
    }