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

C#中System.Windows.Forms.RichTextBox无Document属性报错咨询

解决WinForms RichTextBox 无Document属性的问题

这个报错很典型——你搞混了WPF的RichTextBox和WinForms的RichTextBox两个完全不同的控件啦!Document属性是WPF版本的专属成员,而你当前使用的System.Windows.Forms.RichTextBox根本没有这个属性,所以编译器才会抛出这个错误提示。

下面给你两种针对性的解决思路:

思路1:继续使用WinForms的RichTextBox(获取/操作内容)

如果你就是要在WinForms项目里用这个控件,完全可以用它自带的属性来实现需求:

  • 获取纯文本内容:直接用richTextBox1.Text属性,一行代码就能拿到所有文本
  • 获取带格式的RTF内容:用richTextBox1.Rtf属性,能完整保留字体、颜色、排版等格式信息

比如你原本想获取整个文本范围,换成WinForms的写法可以是:

// 获取纯文本
string allPlainText = richTextBox1.Text;

// 获取带格式的RTF内容
string allFormattedRtf = richTextBox1.Rtf;

如果需要更精细地操作文本范围(比如选中特定段落、插入内容),可以用WinForms RichTextBox的SelectionStart、SelectionLength、SelectedText这些属性来实现。

思路2:切换到WPF的RichTextBox(使用Document属性)

如果你确实需要用到Document属性来做复杂的富文本操作(比如遍历段落、修改特定元素样式),那得确保你用的是WPF版本的控件:

  1. 确认你的项目是WPF项目,或者在WinForms中通过ElementHost嵌入WPF控件
  2. 引用正确的命名空间:System.Windows.Controls(WPF的RichTextBox就在这个命名空间下)
  3. 之后你的原代码就能正常运行了:
// 注意:这里的richTextBox1是WPF的RichTextBox实例
TextRange tr = new TextRange(richTextBox1.Document.ContentStart, richTextBox1.Document.ContentEnd);

最后提醒一句:两个控件的API差异很大,千万别混用命名空间和控件实例哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:54:32