【发布时间】:2014-01-31 03:59:43
【问题描述】:
这个让我很困惑......
我正在尝试在 Visual Studio Visual Basic RichTextBox 控件中显示紧缩的 RTF 文本(到目前为止已在 VS2010 和 VS2012 下尝试过)。简单来说,我创建一个 Windows 窗体项目,在窗体中添加两个 RichTextBox(RichTextBox1 和 RichTextBox2),不更改默认属性,并包含以下 VB 代码:
Public Class Form1
Private Sub Initialise(sender As System.Object, e As System.EventArgs) Handles Me.Load
Dim txtRTF As String = "{\rtf1\ansi" & _
"{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}}" & _
"\f0\pard" & _
"\expndtw-60 a" & _
"\expndtw200 b" & _
"\expndtw-20 c}"
RichTextBox1.Rtf = txtRTF
RichTextBox2.Paste() ' RichTextBox2 formats properly iff clipboard holds ANY valid rtf content
RichTextBox2.Rtf = txtRTF
End Sub
End Class
据我所知,txtRTF String 包含最少的有效RTF 标记和文本。
这是令人困惑的一点:RichTextBox1 中显示的文本没有紧缩,尽管\expndtw(扩大缇)RTF 标记,BUT 文本显示在RichTextBox2 是 正确紧缩,当且仅当剪贴板包含任何有效的 RTF 内容(例如,任何文本首先从 MS Word 文档复制到剪贴板)。如果剪贴板内容不是 RTF 格式,RichTextBox2 中显示的文本不正确紧缩。
如果剪贴板不包含 RTF 格式的数据(或者如果 RichTextBox2.Paste() 代码被删除或注释掉)的运行结果:
如果剪贴板包含任何随机 RTF 格式文本的运行结果:
问题:
-
为什么在设置
RichTextBox2.Rtf字段之前,我之前将RTF 格式(并且不是非RTF 格式)粘贴到RichTextBox2控件中是否重要? - 更重要的是,我如何(在 VB 中)以编程方式在
RichTextBox控件中显示正确的紧缩文本,而不会首先将随机的RTF格式文本粘贴到其中?
【问题讨论】:
标签: visual-studio richtextbox rtf text-processing