程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 使用RichTextBox的一點心得

使用RichTextBox的一點心得

編輯:.NET實例教程
使用RichTextBox的一點心得
         最近開發一個控件,主要是對RichTextBox進行操作,實現對文本的編輯,包括加粗,下劃線,改變字號,改變顏色等。最主要的是在光標位置插入帶背景顏色的標簽。
         我的實現方式如下:
1. 新建一個控件類,讓他繼承RichTextBox類。
2. 文本的編輯
主要使用RichTextBox的Select、SelectionColor、SelectionFont來實現。其中文本顏色是調用ColorDialog組建來實現。
3.帶背景顏色的標簽。
插入這個標簽,開始我還真沒有想到好的解決方法,最後想起了RichTextBox是支持Rtf規范的。利用Rtf規范將文本格式化成一個string,然後將這個string付給RichTextBox的SelectedRtf屬性,之後就算是好了。
Rtf有個關鍵之處:當你改變了一段文本後,在這段文本後面接著輸入文字,後續的文字和前面的文字的格式是一樣的。但是在我們的大多數應用中我們要求後面的文字是默認的格式,也就是黑字白底。在沒有辦法的時候我在我的標簽後面加了一個用Rtf格式化的一個默認的空格。
我的代碼如下:

  private string textColor = @"\red0\green0\blue0;";//文字顏色-->黑
        private string BgWhite = @"\red255\green255\blue255;";//背景顏色-->白
        private string BgGray = @"\red180\green180\blue180;";//背景顏色-->灰
       
        //插入文字
        private string getTagRtf(string text, string textColor, string textBgColor)
        {
            StringBuilder rtfText = new StringBuilder();
            rtfText.Append(@"{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052");//rtf頭
            rtfText.Append(@"{\fonttbl{\f0\fnil\fcharset134\''cb\''ce\''cc\''e5;}}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved