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

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

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

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

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

有什么建议?

作为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; }