You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# WinForms中如何选中DataGridView单元格内部分文本?

解决C# WinForms只读DataGridView单元格选部分文本的问题

要实现类似Access中只读单元格可选中部分文本的效果,核心是让单元格进入编辑模式但限制编辑控件不可修改,具体步骤如下:

    1. 调整DataGridView基础设置
      先将DataGridView的ReadOnly属性设为false(否则无法进入编辑模式),再把需要实现该效果的列或单元格的ReadOnly设为true。同时设置编辑触发模式,方便用户快速进入编辑状态:
    // 在Form加载或构造函数中设置
    dataGridView1.ReadOnly = false;
    // 示例:设置名为"Content"的列为只读
    dataGridView1.Columns["Content"].ReadOnly = true;
    // 设置点击单元格即进入编辑模式
    dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
    
    1. 处理EditingControlShowing事件
      当编辑控件显示时,将对应的TextBox设为只读并启用快捷键,确保能选中文本且无法修改:
    private void DataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        if (e.Control is TextBox textBox)
        {
            textBox.ReadOnly = true;
            textBox.ShortcutsEnabled = true; // 启用复制等快捷键
        }
    }
    
    1. 绑定事件
      记得在Form的初始化代码中绑定上述事件:
    dataGridView1.EditingControlShowing += DataGridView1_EditingControlShowing;
    

这样设置后,用户点击只读单元格会自动进入编辑模式,此时可以自由选中部分文本执行复制等操作,但无法修改单元格内容,完全匹配你想要的效果。

内容的提问来源于stack exchange,提问作者Jack Mawey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:17:08