RichTextBox控件操作

C#富文本控件RichTextBox 使用方法,文本框颜色、字体、格式设置;
以XML文本字符串,用不同颜色、字体、格式显示为例;

程序源码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;

 class RichTextUnit
    {
        public static float m_Size = 16;

        public static void SetFont(RichTextBox m_RichTextBox, Color m_Color, bool bBold = false, float Size = 16)
        {
            m_RichTextBox.SelectionColor = m_Color;
            if (bBold)
                m_RichTextBox.SelectionFont = new System.Drawing.Font("宋体", Size, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel, ((byte)(134)));
            else
                m_RichTextBox.SelectionFont = new System.Drawing.Font("宋体", Size, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134)));
        }

        public static void SetText(RichTextBox m_RichTextBox, string strText, Color m_Color, bool bBold = false, float Size = 16)
        {
            m_RichTextBox.Invoke(((EventHandler)delegate
            {
                RichTextUnit.SetFont(m_RichTextBox, m_Color, bBold, Size);
                m_RichTextBox.SelectedText = strText;
            }));
        }

        public static void SetXmlText(RichTextBox m_RichTextBox, string strText,float Size=16)
        {
            m_RichTextBox.Invoke(((EventHandler)delegate
            {
                int iFirstInx = strText.IndexOf("<?");
                int iSecondInx = strText.IndexOf("?>");

                #region PARSE THROUGH TEXT DATA
                for (int i = 0; i < strText.Length; i++)
                {
                    if (i >= iFirstInx && i <= iSecondInx + 1)
                    {
                        RichTextUnit.SetFont(m_RichTextBox, Color.Blue, false, Size);
                        m_RichTextBox.SelectedText = strText[i].ToString();
                    }
                    else
                    {
                        switch (strText[i])
                        {
                            case '<':
                                {
                                    RichTextUnit.SetFont(m_RichTextBox, Color.Blue, false, Size);
                                    m_RichTextBox.SelectedText = strText[i].ToString();
                                    if (strText[i + 1] == '/')
                                    {
                                        m_RichTextBox.SelectedText = strText[i + 1].ToString();
                                        i++;
                                    }
                                    RichTextUnit.SetFont(m_RichTextBox, Color.DarkRed, false, Size);
                                }
                                break;
                            case '>':
                                {
                                    RichTextUnit.SetFont(m_RichTextBox, Color.Blue, false, Size);
                                    m_RichTextBox.SelectedText = strText[i].ToString();
                                    RichTextUnit.SetFont(m_RichTextBox, Color.Black, false, Size);
                                }
                                break;
                            case '/':
                                {
                                    RichTextUnit.SetFont(m_RichTextBox, Color.Blue, false, Size);
                                    m_RichTextBox.SelectedText = strText[i].ToString();
                                }
                                break;
                            case '=':
                                {
                                    if (strText[i + 1] == '"')
                                    {
                                        RichTextUnit.SetFont(m_RichTextBox, Color.Black, true, Size);
                                        m_RichTextBox.SelectedText = "=" + '"'.ToString();
                                        i++;
                                    }
                                }
                                break;
                            case '"':
                                {
                                    RichTextUnit.SetFont(m_RichTextBox, Color.Blue, false, Size);
                                    m_RichTextBox.SelectedText = strText[i].ToString();
                                    if (strText[i - 1] == '=')
                                        RichTextUnit.SetFont(m_RichTextBox, Color.Black, true, Size);
                                    else
                                        RichTextUnit.SetFont(m_RichTextBox, Color.DarkRed, false, Size);
                                }
                                break;
                            case '!':
                                {
                                    RichTextUnit.SetFont(m_RichTextBox, Color.Green, false, Size);
                                    m_RichTextBox.SelectedText = strText[i].ToString();
                                }
                                break;
                            case '\r':
                                {
                                    if (strText[i + 1] == '\n')
                                    {
                                        m_RichTextBox.SelectedText = "\r\n";
                                        i++;
                                    }
                                }
                                break;
                            default:
                                m_RichTextBox.SelectedText = strText[i].ToString();
                                break;
                        }
                    }
                }
                #endregion

                m_RichTextBox.SelectedText = Environment.NewLine;
            }));
        }
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值