標籤:
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屬性類似,可類比,當然也可以同時使用。
(C#)RichTextBox控制項