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

如何通过快捷键或右键仅复制RichTextBox选中的文本和图片并粘贴?

RichTextBox选中内容(文本+图片)的复制粘贴实现

问题核心

你之前用Clipboard.SetText(rtf.SelectedText)只能获取纯文本,是因为忽略了RichTextBox的RTF格式支持——选中的图片和带格式文本都包含在SelectedRtf属性里。

复制到剪贴板

直接操作RTF格式数据,同时兼容纯文本格式,确保其他应用也能识别:

if (rtf.SelectionLength > 0)
{
    var dataObj = new DataObject();
    // 存入RTF格式(保留图片和格式)
    dataObj.SetData(DataFormats.Rtf, rtf.SelectedRtf);
    // 存入纯文本格式(兼容普通文本框)
    dataObj.SetData(DataFormats.Text, rtf.SelectedText);
    Clipboard.SetDataObject(dataObj);
}

从剪贴板粘贴

优先读取RTF格式,确保图片和格式被保留:

if (Clipboard.ContainsData(DataFormats.Rtf))
{
    rtf.SelectedRtf = Clipboard.GetData(DataFormats.Rtf).ToString();
}
else if (Clipboard.ContainsText())
{
    rtf.SelectedText = Clipboard.GetText();
}

快捷键与右键菜单集成

  • 快捷键:监听KeyDown事件,判断Ctrl+C/Ctrl+V组合键,触发上述复制粘贴方法
  • 右键菜单:给RichTextBox添加ContextMenuStrip,添加“复制”“粘贴”菜单项,点击事件绑定对应代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:42:39