簡體   English   中英

如何在RichTextBox的項目符號列表中添加圈子列表樣式?

[英]How do I add circle list style to a bullet list in RichTextBox?

在列表中添加“圓形”項目符號樣式時遇到問題。 我嘗試將其編碼為WebBrowser對象,然后將其傳遞給RTB,但我也嘗試了richtextbox.rtf,但未成功。

對於HTML,我嘗試過:

WebBrowser webBrowser1 = new WebBrowser();
string content;
        content = "<html><body><font size=4><b>" + projects[0].ProjectName.ToString() + "</font></b> <br> <u>Description</u>: "
            + projects[0].Objective.ToString() + "<br><u>Benefits</u>: <ul style=\"list-style-type:circle\"><li>Near-Term --</li>"
            + "<ul style=\"list-style-type:circle\"><li type=\"circle\">" + projects[1].ShortTerm.ToString() + "</li></ul></ul></body></html>";
webBrowser1.Navigate("about:blank");
webBrowser1.Document.Write(content);
webBrowser1.Document.ExecCommand("SelectAll", false, null);
webBrowser1.Document.ExecCommand("Copy", false, null);
projectsEditor1.RichTextBox.Paste();

這將正確輸出所有內容,但是嵌套的項目符號(應為空心圓)只是默認的“ disc”值。 我嘗試將類型同時放入li和ul中,但都沒有運氣。 這個例子僅說明了我希望兩者都能起作用。 我已經看到RTB的“僅支持”光盤價值。 但是,如果我從單詞中提取項目符號列表並將其復制/粘貼到我的實時出價中,則會顯示圓圈項目符號。 是否可以將圓值編程到RTB中?

我當前的代碼因為HTML無效,所以只能這樣做:

                projectsEditor1.RichTextBox.SelectionBullet = true;
                projectsEditor1.RichTextBox.BulletIndent = 20;
                projectsEditor1.RichTextBox.AppendText("Near-term –");
                projectsEditor1.RichTextBox.AppendText(Environment.NewLine);
                projectsEditor1.RichTextBox.SelectionBullet = false;
                projectsEditor1.RichTextBox.SelectionFont = new System.Drawing.Font("Calibri", 11.0F, FontStyle.Regular);
                projectsEditor1.RichTextBox.SelectionIndent = 45;
                projectsEditor1.RichTextBox.SelectionBullet = true;
                projectsEditor1.RichTextBox.BulletIndent = 20;
                projectsEditor1.RichTextBox.SelectionFont = new System.Drawing.Font("Calibri", 11.0F, FontStyle.Regular);
                projectsEditor1.RichTextBox.AppendText(project.ShortTerm.ToString());
                projectsEditor1.RichTextBox.AppendText(Environment.NewLine);
                projectsEditor1.RichTextBox.SelectionBullet = false;
                projectsEditor1.RichTextBox.SelectionIndent = 0;

但這又產生了與HTML相同的結果。

電流輸出:

在此處輸入圖片說明

所需輸出:

在此處輸入圖片說明

就像我說的那樣,我發現RTB除默認項目符號外不支持任何其他功能,但您可以將其粘貼到RTB中,因此我認為可以做到。

您可以使用Unicode字符:

projectsEditor1.RichTextBox.BulletIndent = 20;
projectsEditor1.RichTextBox.AppendText("Near-term –");
projectsEditor1.RichTextBox.AppendText(Environment.NewLine);
//projectsEditor1.RichTextBox.AppendText("\u25E6".PadLeft(20));
projectsEditor1.RichTextBox.AppendText("\t\u25E6");
projectsEditor1.RichTextBox.AppendText("Some Benefits...");

編輯 :解決您的問題的方法可能是,

 var benefits = "string1\nstring2\nstring3";
 var text = benefits.Split(new char[] { '\n' })
                    .Select(t => 
                    string.Format("{0}{1}{2}", "\t\u25E6 ", t, "\n"))
                    .ToArray();
 benefits = string.Join("", text);

 // Then
 projectsEditor1.RichTextBox.AppendText(benefits);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM