在Windows窗体中,如果我创建一个包含几行和多列的简单DataGridView控件,然后将SelectionMode属性设置为FullRowSelect,我会使用剪贴板的复制功能出现奇怪的行为:
当选择一行并且用户点击ctrl-c时,整个行将被复制到剪贴板,单元格之间带有\ t字符,如预期的那样。
当用户双击并编辑单个单元格时,在该单元格内部用户选择文本的一部分并点击ctrl-c,STILL将复制整行,而不是所选文本的部分! / p>
作为一种解决方法,我尝试在keydown事件上执行剪贴板复制,但是当编辑控件处于编辑模式时不会触发事件。
有什么建议吗?
答案 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;
}