【发布时间】:2018-03-27 03:06:38
【问题描述】:
我正在尝试使用 VB.NET 和 Visual Studio 2017 向 RichTextBox 中的富文本添加标题。根据文档,Richtextbox.rtf 应该允许我获取或设置富文本,包括控制代码。但是,我无法将 *.rtf 设置为包含富文本的字符串。我知道富文本是正确的,因为如果我将它粘贴到 *.rtf 文件中,它就会正确显示。
测试代码如下所示:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim hdr As String = "{\header This is a header}"
Dim s As String = RichTextBox1.Rtf
s = s.Insert(s.LastIndexOf("}"c) - 1, hdr)
MsgBox(s)
With RichTextBox1
RichTextBox1.Rtf = s
MsgBox(RichTextBox1.Rtf)
End With
End Sub
字符串 s 被正确格式化为富文本,但 RichTextBox1.Rtf 赋值后没有变化。我错过了什么?如果我不能以这种方式分配 RichTextBox1.Rtf,还有其他选择吗?
【问题讨论】:
-
我以前从未这样做过,但如果我使用以下链接中的 Rtf 字符串,它似乎可以工作:stackoverflow.com/questions/2601917/…
-
谢谢你,@PerpetualStudent!在您发布您的回复后,我能够自己解决这个问题。只要知道我可以将任何富文本分配给 RTF 属性,就可以为我指明正确的方向。
-
这是我添加标题后的富文本。如果我将它粘贴到一个空的富文本文件中,这会显示一个很好的标题,但我不能将它分配给 RTF 属性。鉴于我可以在链接到的示例@PerpetualStudent 中分配字符串,我想肯定存在语法不兼容。 "{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}} \viewkind4\uc1\pard\f0\fs17\par {\header 这是一个标题}}"
标签: vb.net richtextbox rtf