我已使富文本框已经接受\ ulc N 和ul样式标签(例如\ ulwave,\ ulth ...),但是我不知道如何通过代码设置它们选定的文本(如richTextBox.SelectionFont = someFont;
作为字体)。我已经尝试直接修改richTextBox的Rtf和SelecedRtf属性,但无法使其正常工作。
我虽然有两种方法,例如:
static void SetSelectionUnderlineColor (this RichTextBox richTextBox, Color color)
static void SetSelectionUnderlineStyle (this RichTextBox richTextBox,
UnderLineStyle style)
然后wich为富文本框中的当前选定文本设置下划线颜色/样式。 SetSelectionUnderlineColor方法可能还必须向富文本框的颜色表中添加新颜色。
示例:
richTextbox = new RichEdit50(); //Used code for RichEdit50 class below
richTextbox.Text = "Test\nTest2";
richTextbox.Select(0, 2);
richTextbox.SetSelectionUnderlineStyle(UnderLineStyle.Wave);
richTextbox.SetSelectionUnderlineColor(Color.Red);
richTextbox.Select(5, 2);
richTextbox.SetSelectionUnderlineStyle(UnderLineStyle.Thick);
richTextbox.SetSelectionUnderlineColor(Color.Green);
richTextbox.Select(7, 3);
richTextbox.SetSelectionUnderlineStyle(UnderLineStyle.Continuous);
richTextbox.Select(richTextbox.Text.Length, 0);
应显示以下内容: Expected outcome
当前,我正在使用以下代码创建一个富文本框,该文本框支持\ ulc N 标记以更改下划线颜色:
public class RichEdit50 : RichTextBox
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary (string lpFileName);
protected override CreateParams CreateParams
{
get
{
CreateParams prams = base.CreateParams;
if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
{
prams.ClassName = "RICHEDIT50W";
}
return prams;
}
}
}
谢谢您的帮助!
答案 0 :(得分:-2)
希望它对可能需要它的人有用。
我尝试在此处发布 RichTextBoxEx C#类,但超出了30000的限制,因此请从https://github.com/heliwave/QuranCode下载它
您将在 Tools \ Controls 文件夹中找到 ListBoxEx.cs 和 PictureBoxEx.cs 。
在http://qurancode.com上查看完整的开源C#库。