C# 如何获取richTextBox的文本内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 如何获取richTextBox的文本内容相关的知识,希望对你有一定的参考价值。

在vs2013下 用 Modern UI 写了个界面用来将文本用语音读出来,用到了 RichTextBox 控件,在WindowsFormApplication 中的RichTextBox控件可以用 Text属性获取其中的文本,但不知为何在Modern UI 中的RichTextBox 控件就没有了 Text 属性,找了半天也没有找到如果获取的文本内容的方法,求大神指教啊
另附xaml 部分代码:
<mui:ModernWindow
........省略无关代码.........
<Grid Background="AliceBlue">
<ScrollViewer>
<RichTextBox Name="richTextBox"
FontSize="20" >
<FlowDocument>
<Paragraph>
<Run Text="中国人民保险公司"/>
</Paragraph>
</FlowDocument>
</RichTextBox>
</ScrollViewer>

参考技术A RichTextBox.Document就是RichTextBox的内容,其类型就是FlowDocument
参考:
http://msdn.microsoft.com/zh-cn/library/system.windows.controls.richtextbox.document.aspx追问

请问如何将其内容转化为 String 类型呢?
text = this.richTextBox.Document;// 获取RichTextBox中的文本
上面这条语句就是想获得 richTextBox中的文本,但 text是string类型,Document是FlowDocument类型,无法直接赋值,试了显式转换,也不行

追答

FlowDocument本身是WPF的一个特性,其编辑、保存都有专门的机制
你要转换的话得自己写代码,可以参考这些转成html的:
http://stackoverflow.com/questions/6236483/c-sharp-flowdocument-to-html-conversion
http://blogs.msdn.com/b/wpfsdk/archive/2006/05/25/606317.aspx

做WPF文档方面的功能就不要把局限于文本,应该以新技术的视角看问题,微软搞出这东西不是孤立存在的,配套的功能都很完善

参考技术B 试试Content属性

C# winform中richTextBox中自动滚至底部

richTextBox中的文本由另一个控件加入的时候,当自动出现滚动条时,文本不会自动向下滚动,文本还是定位在开始处,因此无法自动查看新加入的文本,而richTextBox又没有AutoScroll这个属性,请问如何实现下面描述的功能:当一richTextBox由另一richTextBox加入文本且自动出现滚动条时,自动向下滚动,以便查看新加入文本的内容~~~谢谢!!!
可以实现自动定位的文本尾,可是richTextBox1成了光标所在位置,我想要的是在richTextBox2中编辑并将编辑文本加入richTextBox1,但richTextBox2并不失去焦点,谢谢~~~

垂直滚动条始终在RichTextBox的底部
你需要设置HideSelection 为 false 并且用 AppendText来插入新数据
例如richTextBox.AppendText("内容");

让richTextBox2一直获取焦点
则在促发事件的时候
增加richTextBox2.Focus();
参考技术A //让文本框获取焦点
this.richTextBox.Focus();
//设置光标的位置到文本尾
this.richTextBox.Select(this.richTextBox.TextLength,0);
//滚动到控件光标处
this.richTextBox.ScrollToCaret();

以上是关于C# 如何获取richTextBox的文本内容的主要内容,如果未能解决你的问题,请参考以下文章

如何读取或者打印C#中RichTextBox中的文本内容?

C# winform中richTextBox中自动滚至底部

如何在 RichTextBox C# 中“对齐”文本?

如何在 RichTextBox 中添加 RTF 文本,Win C#

C# richtextbox背景设置成透明后,如何能看到richtextbox内录入的内容

C#,RichTextBox:如何实现逐行滚动?