C# RichTextBox的用法

來源:互聯網
上載者:User

標籤:

RichTextBox是一種可用於顯示、輸入和操作格式文本,除了可以實現TextBox的所有功能,還能提供富文本的顯示功能。 控制項除具有TextBox 控制項的所有功能外,還能設定文字顏色、字型和段落格式,支援字串尋找功能,支援rtf格式等功能。

下面就其的常用到的功能進行介紹。

一、顯示捲軸

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

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

ScrollBars屬性值:

1、Both:只有當文本超過RichTextBox的寬度或長度時,才顯示水平捲軸或垂直捲軸,或兩個捲軸都顯示。

2、None:從不顯示任何類型的捲軸。

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

4、Vertical:只有檔文本超過RichTextBox的高度時,才顯示垂直捲軸。

5、ForcedHorizontal:當WordWrap屬性設定為false時,顯示水平捲軸。在文本未超過RichTextBox的寬度時,該捲軸顯示為淺灰色。

6、ForcedVertical:始終顯示垂直捲軸。在文本未超過RichTextBox的長度時,該捲軸顯示為淺灰色。

7、ForcedBoth:始終顯示垂直捲軸。當WordWrap屬性設定為false時,顯示水平捲軸。在文本未超過RichTextBox的寬度或長度時,兩個捲軸均顯示為灰色。

 

 註:RichTextBox的WordWrap屬性:用於指示多行文字框控制項在必要時是否換行到下一行的開始。當屬性為true時,不論ScrollBars屬性值是什麼,都不會顯示水平捲軸。

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

(1)、當WordWrap為true,ScrollBars為Both時:

 

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

(2)、當WordWrap為false,ScrollBars為Both時:

 

由此可知,WordWrap為false時,即使文本超過RichTextBox的寬度,也不會自動換行到下一行,只有使用者輸入斷行符號時才會換行,並且當文本超過RichTextBox的寬度後,才會顯示水平捲軸。

代碼實現過程:

private void Form1_Load(object sender, EventArgs e) //表單的Load事件{   richTextBox1.Multiline =  true ;     //將Multiline屬性設定為true,實現顯示多行     richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical; //設定ScrollBars屬性實現只顯示垂直滾動}

 

二、設定字型屬性

 可通過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超連結文本會自動變成藍色字型且有底線。

此時點擊超連結文本不會有任何響應,需要在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事件中編寫如下代碼實現內容中的網址單擊後可以訪問網址}

 

 

 

三、設定段落格式

可通過設定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):

 

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

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

 

private void Form1_Load(object sender, EventArgs e){  richTextBox1.Multiline = true ;  richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical ;  richTextBox1.SelectionIndent = 50 ;}

 

差異如下組圖:

 

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

 

四、常用功能 1.RichTextBox控制項的常用屬性1) SelectedText屬性、SelectionLength屬性、SelectionStart屬性——與TextBox控制項的屬性功能相同。
2) SelectionFont:擷取或設定選中的文本或插入點的字型,例如:
richTextBox1.SelectionFont=fontDialog1.Font; //設定為字型對話方塊中選中的字型 
3) SelectionColor:擷取或設定選中的文本或插入點的文本顏色。4) SelectionAlignment:擷取或設定應用到當前選定內容或插入點的對齊。
5) Lines屬性——字串數組。記錄輸入到RichText控制項中的所有文本,每按兩次斷行符號鍵之間的字串是該數組的一個元素。
6) Modifyed屬性——記錄使用者是否已修改控制項中的常值內容。若已修改,該屬性值自動化佈建為true。
7) HideSelection屬性——設定當焦點離開該控制項時,選定的文本是否保持反白。值為false時反白。
2.RichTextBox控制項的常用事件

1)SelectionChange事件——控制項中選中的文本發生改變時,觸發該事件。 
2)TextChanged事件——控制項中的常值內容發生改變時,觸發該事件。

3.RichTextBox控制項的常用方法1)Clear( )方法——清除RichText控制項中使用者輸入的所有內容。 
2)Copy( )、Cut( )、Paste( )方法——實現RichText控制項的剪貼簿功能;
3)SelectAll( )方法——選中控制項中的所有文本。  4)Find( )方法——實現尋找功能。
5)SaveFile( )方法、LoadFile( )方法——儲存文本和開啟檔案。
6)Undo( )方法、Redo( )方法——撤銷上一次編輯操作、重做上次撤銷的編輯操作。  
說明:常與CanUndo屬性和CanRedo屬性配合使用。
7)LoadFile()——載入文字檔(*.txt)或RTF檔案(*.rtf)。 
8)SaveFile()——儲存文字檔(*.txt)或RTF檔案(*.rtf)。
 4. 將檔案載入到RichTextBox 對象中  

使用LoadFile( )方法.
(1)一般格式
RichTextBox對象名.LoadFile(檔案名稱,檔案類型);  
(2)說明
RichTextBox 控制項可以顯示純文字、Unicode 純文字或 RTF 格式檔案。若要顯示這些檔案,可調用 LoadFile 方法。例如,使用開啟檔案對話方塊選擇一個文字檔並載入到richTextBox1控制項中,代碼如下:  

openFileDialog1.Filter="文字檔(*.txt)|*.txt|所有檔案(*.*)|*.*";if(openFileDialog1.ShowDialog()==DialogResult.OK){          string fName=openFileDialog1.FileName;     richTextBox1.LoadFile(fName,RichTextBoxStreamType.PlainText  );} 

RichTextBoxStreamType.PlainText為載入的檔案類型,其他可選的枚舉值如下:

5. 儲存RichTextBox 對象中的檔案用SaveFile( )方法
(1)一般格式
RichTextBox對象名.SaveFile(檔案名稱,檔案類型);   
(2)使用說明
同LoadSave( )方法。
//儲存RTF格式檔案saveFileDialog1.Filter="RTF檔案(*.rtf)|*.rtf"; saveFileDialog1.DefaultExt="rtf";
//預設的副檔名if(saveFileDialog1.ShowDialog()==DialogResult.OK)richTextBox1.SaveFile(saveFileDialog1.FileName,RichTextBoxStreamType.RichText );

6. 插入圖片檔案

可藉助剪貼簿實現.

Clipboard.Clear();   //清空剪貼簿Bitmap bmp = new Bitmap(@"d:\圖片1.jpg");  //建立Bitmap類對象Clipboard.SetImage(bmp);  //將Bitmap類對象寫入剪貼簿richTextBox1.Paste();   //將剪貼簿中的對象粘貼到RichTextBox1

 

參考文章

1. (C#)RichTextBox控制項

2. RichTextBox控制項簡介

 

C# RichTextBox的用法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.