3

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

When a row is selected and user hits ctrl-c, the full row is copied to the clipboard with \t characters between cells, as expected.

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

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

有什么建议么?

4

1 回答 1

7

作为解决方法:

编辑时禁用剪贴板副本

  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;
    }
于 2012-08-01T08:57:30.993 回答