是否可以在设计时在richtextbox中设置文本样式?

Mar*_*tin 7 vb.net design-time richtextbox visual-studio .net-2.0

我有一个System.Windows.Forms.RichTextBox,我希望用它来向我的应用程序用户显示一些指令.

是否可以将我在设计时输入的一些文本设置为粗体?

或者我没有选择,只能在运行时这样做?

Han*_*ant 9

在项目中添加一个新类并粘贴下面显示的代码.编译.将新控件从工具箱顶部拖放到表单上.选择RichText属性,然后单击带有点的按钮.这将启动Wordpad.编辑文本,键入Ctrl + S并关闭Wordpad.请注意,当Wordpad处于打开状态时,Visual Studio设计器不起作用.

Imports System.ComponentModel
Imports System.Drawing.Design
Imports System.IO
Imports System.Diagnostics

Public Class MyRtb
    Inherits RichTextBox

    <Editor(GetType(RtfEditor), GetType(UITypeEditor))> _
    Public Property RichText() As String
        Get
            Return MyBase.Rtf
        End Get
        Set(ByVal value As String)
            MyBase.Rtf = value
        End Set
    End Property

End Class

Friend Class RtfEditor
    Inherits UITypeEditor

    Public Overrides Function GetEditStyle(ByVal context As ITypeDescriptorContext) As UITypeEditorEditStyle
        Return UITypeEditorEditStyle.Modal
    End Function

    Public Overrides Function EditValue(ByVal context As ITypeDescriptorContext, ByVal provider As IServiceProvider, ByVal value As Object) As Object
        Dim fname As String = Path.Combine(Path.GetTempPath, "text.rtf")
        File.WriteAllText(fname, CStr(value))
        Process.Start("wordpad.exe", fname).WaitForExit()
        value = File.ReadAllText(fname)
        File.Delete(fname)
        Return value
    End Function
End Class
Run Code Online (Sandbox Code Playgroud)


Kon*_*lph 4

您当然可以在 RTF 编辑器(例如 WordPad)中创建 RTF 文档,保存文件,将其作为文本/纯文件打开,然后在设计时将 RTF 文档复制到RtfText您的属性中。RichTextBox

\n\n

但我建议不要这样做。这样,您的代码中就会有大量数据,而\xe2\x80\x99s 则没有必要这样做。毕竟,使用资源,\xe2\x80\x99 就是它们的用途。您可以在设计时绑定各个资源来控制属性。

\n