代码之家  ›  专栏  ›  技术社区  ›  BH7

富文本框*格式

  •  -1
  • BH7  · 技术社区  · 7 年前

    语言:C#

    我的问题。。。

    Q、 是否有一种简单的方法可以更改富文本框中字符串的格式,类似于使用HTML处理字符串的方法。

    例如:

    richTextBox1.text = "[i]Hello[/i] [Bold]world![/Bold]";
    

    输出: 你好 世界

    我还想知道是否有颜色?

    向您致以诚挚的问候,并提前感谢您的反馈。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Ctznkane525    7 年前

    富文本格式本身就是一种语言。然而,你不需要学习它来使用它。

    然而,还有其他更实用的方法可以实现这一点,例如:

    RichTextBox1.Text = "Hello World"
    
    ' Select Hello and Bold It
    RichTextBox1.Find("Hello")
    Dim fntBold As New Font(RichTextBox1.Font, FontStyle.Bold)
    RichTextBox1.SelectionFont = fntBold
    
    ' Select World and Set to Italics
    RichTextBox1.Find("World")
    Dim fntItalic As New Font(RichTextBox1.Font, FontStyle.Italic)
    RichTextBox1.SelectionFont = fntItalic
    

    之后,如果您感到好奇,可以查看RichTextBox。Rtf属性(它是一个字符串)以查看它的外观。这是我做了之后看到的:

    {\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}\viewkind4\uc1\pard\lang1033\b\f0\fs17 Hello\b0  \i World\i0\par}
    

    事实上,如果您随后获取该文本,请打开记事本,复制Rtf属性的文本,另存为Rtf文件。关闭记事本并在Word中打开RTF,您将看到相同的文本,具有相同的外观和感觉。

        2
  •  0
  •   BH7    7 年前

    嗨,谢谢,太好了 @Ctznkane525 ,感谢您让我走上正轨,我确实将其转换为C#,结果如下:

    using System.Drawing.Text;
    
            rtb_Main.Text = "Hello World";
            rtb_Main.Find("Hello");
            Font fntBold = new Font(FontFamily.GenericSansSerif, 14.0F, FontStyle.Bold);
            rtb_Main.SelectionFont = fntBold;
    
            rtb_Main.Find("World");
            Font fntItalic = new Font(FontFamily.GenericSansSerif, 14.0F, FontStyle.Italic);
            rtb_Main.SelectionFont = fntItalic;