我已经使富文本框已经接受\ 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)
然后为富文本框中当前选定的文本设置下划线颜色/样式。 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);
应该显示这样的内容:
当前,我正在使用以下代码来创建支持\ 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;
}
}
}
希望它对可能需要它的任何人有用。
我试图在此处发布RichTextBoxEx C#类,但超出了30000的限制,因此请从https://github.com/heliwave/QuranCode下载它>
您将与ListBoxEx.cs
和PictureBoxEx.cs一起在Tools \ Controls文件夹中找到。请参见http://qurancode.com上正在使用的完整的开源C#库。
通过帮助他人来帮助自己...
Ali