关于winform中richtextbox的问题

使用wps2019保存的rtf文档,里面有图片的话,在winform中读取这段rtf,然后赋值给richtextbox的Rtf属性,图片不会显示,但是使用office2013保存的就可以,有知道为什么的嘛?有啥解决方案不?
目前想到的保底的解决方案是剪切板,使用com组件打开wps2019的rtf,然后复制粘贴到richtextbox中

wps存在bug,这个你要向wps的技术部门反馈啊。

  • 请看👉 :wpf 富文本编辑器richtextbox的简单用法
  • 除此之外, 这篇博客: C#理论之四——WinForm中的 1.9.2 富文本框RichTextBox 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 实际开发中可能需要在读取文本信息时需要保留原有的文本格式,这时候就不能使用普通的文本控件 (TextBox) 了,而需要使用富文本框控件 (RichTextBox) 来完成。

    RichTextBox 控件在使用时与 TextBox 控件非常类似,除具有TextBox 控件的所有功能外,还能设定文字颜色、字体和段落格式,支持字符串查找功能,支持rtf格式等功能。

    此外,在 RichTextBox 控件中还提供了文件加载和保存的方法,不需要使用文件流即可完成对文件的读写操作。


    • 实例:使用 RichTextBox 控件完成文件的打开与保存操作

    往窗口添加RichTextBox控件。
    在这里插入图片描述

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Diagnostics;
    using System.IO;
    
    namespace WinFormLearning
    {
        public partial class Form1 : Form
        {
            public Form1() // 窗体初始化函数
            {
                InitializeComponent();
            }
            private void button5_Click(object sender, EventArgs e)
            {
                DialogResult dr = openFileDialog1.ShowDialog();
                //获取打开文件的文件名
                string filename = openFileDialog1.FileName;
                if (dr == System.Windows.Forms.DialogResult.OK && !string.IsNullOrEmpty(filename))
                {
                    richTextBox1.LoadFile(filename, RichTextBoxStreamType.PlainText);
                }
            }
    
            private void button6_Click(object sender, EventArgs e)
            {
                DialogResult dr = saveFileDialog1.ShowDialog();
                //获取所保存文件的文件名
                string filename = saveFileDialog1.FileName;
                if (dr == System.Windows.Forms.DialogResult.OK && !string.IsNullOrEmpty(filename))
                {
                    richTextBox1.SaveFile(filename, RichTextBoxStreamType.PlainText);
                }
            }
        }
    }