在 Windows 窗体中,如果我创建一个包含几行和几列的简单 DataGridView 控件,然后将 SelectionMode 属性设置为 FullRowSelect,剪贴板的复制功能会出现奇怪的行为:
当一行被选中并且用户按下 ctrl-c 时,整行被复制到剪贴板,单元格之间有\t 字符,正如预期的那样。
当用户双击并编辑单个单元格时,用户在该单元格内选择文本的一部分并按 ctrl-c,仍然会复制整行,而不是所选文本的部分!
作为解决方法,我尝试在按下事件时执行剪贴板复制,但是当编辑控件处于编辑模式时该事件不会被触发。
有什么建议吗?
最佳答案
作为解决方法:
编辑时禁用剪贴板复制
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;
}
关于c# - 当 DataGridView.SelectionMode 为 FullRowSelect 时剪贴板复制失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11755747/