c# - 当 DataGridView.SelectionMode 为 FullRowSelect 时剪贴板复制失败

标签 c# winforms datagridview

在 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/

相关文章:

c# - access数据库中datagridview中数据的显示方法

c# - Xamarin.Forms RadioButtons 文本不可见

c# - 如何正确停止正在使用 Control.Invoke 的线程

c# - 如何提取列表中具有相同值的项目数?

c# - 使用 C# 在 Windows 窗体应用程序上读取和显示 CSV 文件中的数据

c# - Gridview 行选择和编辑

c# - "async Task"成员(member)问题

将颜色着色一定百分比的 C# 算法

c# - 如何使用 Roslyn CTP 创建新解决方案

c# - C#Errorprovider.ContainerControl.Controls仅包含TabControl