(C#)RichTextBox控件


RichTextBox(有格式文本)控件可實現TextBox控件的所有功能。

❶在RichTextBox控件中顯示滾動條

RichTextBox可設置Multiline屬性來控制是否顯示滾動套,true為是,false為否。,默認為true。(此項屬性在TextBox亦可實現)

滾動條分為兩種:水平(Horizontal)滾動條和垂直(Vertical)滾動條,通過RichTextBox的ScrollBars屬性設置如何顯示滾動條。(此項屬性在TextBox亦可實現)

ScrollBars屬性值:一、Both:只有當文本超過RichTextBox的寬度或長度時,才顯示水平滾動條或垂直滾動條,或兩個滾動條都顯示。

                         二、None:從不顯示任何類型的滾動條。

                         三、Horizontal:只有當文本超過RichTextBox的寬度時,才顯示水平滾動條。必須將WordWrap屬性設置為false,才會出現這種情況。(下面將會給出解釋)

                         四、Vertical:只有檔文本超過RichTextBox的高度時,才顯示垂直滾動條。

                         五、ForcedHorizontal:當WordWrap屬性設置為false時,顯示水平滾動條。在文本未超過RichTextBox的寬度時,該滾動條顯示為淺灰色。(見圖1)         (圖1)  (圖2)  (圖3)

                        六、ForcedVertical:始終顯示垂直滾動條。在文本未超過RichTextBox的長度時,該滾動條顯示為淺灰色。(見圖2)

                        七、ForcedBoth:始終顯示垂直滾動條。當WordWrap屬性設置為false時,顯示水平滾動條。在文本未超過RichTextBox的寬度或長度時,兩個滾動條均顯示為灰色。(見圖3)

 注:RichTextBox的WordWrap屬性:用於指示多行文本框控件在必要時是否換行到下一行的開始。當屬性為true時,不論ScrollBars屬性值是什么,都不會顯示水平滾動條。

下面通過幾個截圖加以描述其區別。(此項屬性TextBox亦可實現)

一、當WordWrap為true,ScrollBars為Both時:(見組圖4)

(組圖4)

由此可見,WordWrap為true時,一旦文本超過RichTextBox的寬度時,就會自動換行到下一行,自然不需要用到水平滾動條,也就不顯示出來了。

二、當WordWrap為false,ScrollBars為Both時:(見組圖5)

(組圖5)

由此可知,WordWrap為false時,即使文本超過RichTextBox的寬度,也不會自動換行到下一行,只有用戶輸入回車時才會換行,並且當文本超過RichTextBox的寬度后,才會顯示水平滾動條。

代碼實現過程:

private void Form1_Load(object sender, EventArgs e) //窗體的Load事件

{

   richTextBox1.Multiline =  true ;     //將Multiline屬性設置為true,實現顯示多行

        richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical; //設置ScrollBars屬性實現只顯示垂直滾動

}

 

 ❷在RichTextBox控件中設置字體屬性

 可通過RichTextBox的Font屬性和ForeColor屬性設置(Visual Studio2013社區版找不到SelectionFont和SelectionColor屬性),也可通過代碼實現,如文本字體設置為楷體,字體大小為12,字樣是粗體,文本顏色為紅色:

代碼實現過程:

private void Form1_Load(object sender, EventArgs e) //窗體的Load事件

{

  richTextBox1.Multiline = true ;  //將Multiline屬性設為true,實現顯示多行

  richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;  //設置ScrollBars屬性實現只顯示垂直滾動條

  richTextBox1.SelectionFont = new Font ("楷體", 12, FontStyle.Bold);  //設置SelectionFont屬性實現控件中的文本為楷體,大小為12,字樣是粗體

  richTextBox1.SelectionColor = System.Drawing.Color.Red;    //設置SelectionColor屬性實現控件中的文本顏色為紅色

}

 

  

❸將RichTextBox控件顯示為超鏈接樣式

將以“http://”開頭的Web鏈接地址作為超鏈接文本時,運行時RichTextBox超鏈接文本會自動變成藍色字體且有下划線。(見圖6)

(圖6)此時點擊超鏈接文本不會有任何響應,需要在RichTextBox的LinkClicked事件中編寫代碼實現。

代碼實現過程:

private void Form1_Load(object sender, EventArgs e)           //窗體的Load事件

{

  richTextBox1.Multiline = true ;   //將Multiline屬性設為true,實現顯示多行

  richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;   //設置ScrollBars屬性實現只顯示垂直滾動條

  richTextBox1.Text = "http://www.baidu.com百度一下你就知道";   //設置Text屬性 

}

private void richTextBox1_LinkClicked(object sender, EventArgs e)

{

  System.Diagnostics.Process.Start(e.LinkText);                   //在控件LinkClicked事件中編寫如下代碼實現內容中的網址單擊后可以訪問網址

}

 

❹在RichTextBox控件中設置段落格式

可通過設置SelectionBullet屬性將選定的段落設置為項目符號列表的格式,也可以使用SelectionIndent屬性和SelectionHangingIndent屬性設置段落相對於控件的左右邊緣進行縮進。下面用代碼將控件的SelectionBullet屬性設置為true,使控件中的內容以項目符號列表的格式排列。

代碼實現過程:

private void Form1_Load(object sender, EventArgs e)

{

  richTextBox1.Multiline = true ;    

      richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical ;

  richTextBox1.SelectionBullet = true ;

}

以下為屬性SelectionBullet設為false和true時的差異(前者為false后者為true):(見組圖7)

(組圖7)

通過SelectionIndent屬性設置一個整數,該整數表示控件的左邊緣和文本的左邊緣之間的距離(以像素為單位)。通過SelectionRightIndent屬性設置一個整數,該整數表示控件的右邊緣與文本的右邊緣之間的距離(以像素為單位)。

以下通過代碼實現SelectionIndent屬性設置。

代碼實現過程:

private void Form1_Load(object sender, EventArgs e)

{

  richTextBox1.Multiline = true ;

  richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical ;

  richTextBox1.SelectionIndent = 50 ;

}

差異如下組圖:

SelectionRightIndent屬性與SelectionIndent屬性類似,可類比,當然也可以同時使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM