2012-12-19 55 views
0

我試圖將標題設置爲粗體並保留下劃線。例如:將前綴設置爲粗體並保留下劃線

TitleScreenshot

代碼不斷使所有線路大膽。從上圖中可以看出,只有標題應該是粗體。我如何修復代碼以匹配圖像?

 List<string> titles = new List<string> { "Basic Metabolic Panel", "Complete Blood Count", "Comprehensive Metabolic Panel" }; 
     List<string> bodies = new List<string> { " : Collected: 8/20/2012 5:45:00 PM", " : Collected: 8/20/2012 5:45:00 PM", " : Collected: 8/17/2012 4:18:00 AM" }; 


     for (int i = 0; i < titles.Count; i++) 
     { 
      string labName = titles[i]; 
      string collectionDate = bodies[i]; 
      int oldTextEndPoint = rtb.Text.Length; 

      rtb.Text += labName + collectionDate + Environment.NewLine; 

      rtb.Select(oldTextEndPoint, labName.Length + collectionDate.Length); 
      rtb.SelectionFont = new Font(rtb.Font, rtb.SelectionFont.Style | FontStyle.Underline); 

      rtb.Select(oldTextEndPoint, labName.Length); 
      rtb.SelectionFont = new Font(rtb.Font, rtb.SelectionFont.Style | FontStyle.Bold); 
     } 
+0

豈不更好地構建你的字體對象圈外的?它看起來像你從來沒有試圖刪除大膽的國旗? –

+0

@RowlandShaw - 我不應該刪除標誌。 'rtb.SelectionFont.Style'工作與'RichTextBox.Select()'參數協同工作。 –

回答

0

改變

rtb.Text += labName + collectionDate + Environment.NewLine;

rtb.AppendText(labName + collectionDate + Environment.NewLine);

和事物正常工作......

1

問題是您將SelectionFont設置爲基於RTB的默認字體的新字體 - 而不是基於當前的SelectionFont。

嘗試將其更改爲:

rtb.Select(oldTextEndPoint, labName.Length + collectionDate.Length); 
rtb.SelectionFont = new Font(rtb.SelectionFont, rtb.SelectionFont.Style | FontStyle.Underline); 

rtb.Select(oldTextEndPoint, labName.Length); 
rtb.SelectionFont = new Font(rtb.SelectionFont, rtb.SelectionFont.Style | FontStyle.Bold); 

編輯1:

我剛剛創建一個簡單的Windows應用程序用下面的代碼和它既大膽又強調:

rtb.Text = "abcdefghijklmnopqrstuvwxyz"; 
rtb.Select(3, 10); 
rtb.SelectionFont = new Font(rtb.SelectionFont, rtb.SelectionFont.Style | FontStyle.Bold); 
rtb.Select(3, 5); 
rtb.SelectionFont = new Font(rtb.SelectionFont, rtb.SelectionFont.Style | FontStyle.Underline); 
+0

使用原始代碼生成等效結果很重要。我還發現第一次迭代可行。這是後面的迭代打破。因爲編輯只能經歷一次迭代,所以過度簡化不會再造成問題。嘗試原始代碼,你會發現這個解決方案不起作用。 –

+0

是的,你是對的。將rtb.Font更改爲rtb.SelectionFont並嘗試下面的P.Brian.Mackey的建議(將.Text + = ...更改爲.AppendText(...))後,它按照您的預期工作。 –

相關問題