2011-10-28 61 views
10

我想打一個文本編輯器,我可以大膽,改變顏色等等等等如何使豐富的文本框C#的一些文字加粗

我發現這個代碼粗略工作:

public static void BoldSelectedText(RichTextBox control) 
{ 
    control.SelectionFont = new Font(control.Font.FontFamily, control.Font.Size,   FontStyle.Bold); 
} 

但是當我嘗試輸入更多的字母到rtf時,它仍然是粗體。

我該怎麼做只有選定的文本纔會加粗,粗體「按鈕。

回答

14

您應該在選擇原始字體後設置字體。

如果您想要保存SelectionStartSelectionLength並調用Select方法再次選擇文本。

// Remember selection 
int selstart = control.SelectionStart; 
int sellength = control.SelectionLength; 

// Set font of selected text 
// You can use FontStyle.Bold | FontStyle.Italic to apply more than one style 
control.SelectionFont = new Font(control.Font, FontStyle.Bold); 

// Set cursor after selected text 
control.SelectionStart = control.SelectionStart + control.SelectionLength; 
control.SelectionLength = 0; 
// Set font immediately after selection 
control.SelectionFont = control.Font; 

// Reselect previous text 
control.Select(selstart, sellength); 

這樣文本保持選中狀態,之後的字體仍然是正確的。

+0

thx,that worked :) – chrs

+0

你知道我怎麼可以大膽和斜體的文字? – chrs

+1

http://stackoverflow.com/questions/4198429/substract-flag-from-fontstyle-toggling-fontstyles-c that幫助 – chrs