none
c#怎么在richtextbox中设置不同字体的文字? RRS feed

  • 问题

  • string4=string1+string2+string3;

    RichTextBox1.Text=string5+string4+string6;

    因为字符串是程序中生成的,怎么在程序中设置只让string2字体加粗或为不同颜色?

    2018年3月9日 6:47

全部回复

  • Hi,

    在winform中你可以使用RichTextBox.SelectionFont 属性来设置字体。参考下面的代码:

    private void ToggleBold()
    {
       if (richTextBox1.SelectionFont != null)
       {
          System.Drawing.Font currentFont = richTextBox1.SelectionFont;
          System.Drawing.FontStyle newFontStyle;
    
          if (richTextBox1.SelectionFont.Bold == true)
          {
             newFontStyle = FontStyle.Regular;
          }
          else
          {
             newFontStyle = FontStyle.Bold;
          }
    
          richTextBox1.SelectionFont = new Font(
             currentFont.FontFamily, 
             currentFont.Size, 
             newFontStyle
          );
       }
    }

    这是让 richtextbox 显示不同的字体,没有找到合适的办法,让richtextbox 上面显示的字符显示不同的字体。同一时刻不能显示多种字体在一个richtextbox 中。

    关于如何给richtextbox 设置不同的字体,你可以参考下面链接。

    https://docs.microsoft.com/en-us/dotnet/framework/winforms/controls/how-to-set-font-attributes-for-the-windows-forms-richtextbox-control

    下面是设置不同的颜色。https://stackoverflow.com/questions/1926264/color-different-parts-of-a-richtextbox-string

    Best Regards,

    Hart


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年3月9日 8:01
    版主
  • 谢谢!

    如果只是将其中几个字加粗或加下划线,能否不依赖控件,比如就像html一样,先在字符串中加标记,组合完毕最后在控件中展现?


    2018年3月9日 9:12
  • RTF格式本身就有一套标记样式,不依赖winform的richtextbox。

    将RTF格式构造后完成后,再传给richtexbox即可,参考RTF specification.

    http://cn.bing.com/search?q=rtf+specification+pdf&qs=AS&pq=rtf+speci&sk=AS1&sc=8-9&cvid=6BCCE2DF53E24F8E8EF3A32F8AFCF01A&FORM=QBLH&sp=2


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年3月12日 1:20