【问题标题】:Clipboard copy fails when DataGridView.SelectionMode is FullRowSelect当 DataGridView.SelectionMode 为 FullRowSelect 时,剪贴板复制失败
【发布时间】:2012-08-01 08:50:18
【问题描述】:

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

选择一行并击中CTRL-C时,将完整行复制到剪贴板上,如预期,单元格之间的\ t字符。

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

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

有什么建议吗?

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案1】:

    作为解决方法:

    编辑时禁用剪贴板复制

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

    【讨论】:

      猜你喜欢
      • 2023-02-17
      • 2014-02-26
      • 2013-10-17
      • 2017-10-25
      • 2018-09-12
      • 1970-01-01
      • 2018-09-17
      • 2014-07-30
      • 1970-01-01
      相关资源
      最近更新 更多