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);
        }   
4

2 に答える 2

1

問題は、SelectionFont を、現在の SelectionFont ではなく、RTB のデフォルト フォントに基づいた新しいフォントに設定していることです。

次のように変更してみてください。

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);
于 2012-12-19T17:36:29.887 に答える
0

かわった

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

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

そして、物事は正しく機能します...

于 2012-12-19T17:46:28.527 に答える