На какую версию .Net framework вы ориентируетесь?Я предполагаю что-то до 4.7.
То, что вы видите, это ограничение RichTextBox, основанного на RICHEDIT20W с версиями до .Net 4.7.В выпусках 4.7.x значение по умолчанию переключено на RICHEDIT50W.
Самое простое решение - просто переключиться на версию 4.7.x Framework, если это возможно.Если вам по какой-то причине нужно использовать более старую платформу, вы можете воспользоваться чем-то вроде в этом примере (код, скопированный ниже для потомков), чтобы переключиться в редактор RICHEDIT50W.Он существует со времен XP, поэтому он должен быть доступен почти везде.
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string lpFileName);
protected override CreateParams CreateParams
{
get
{
CreateParams cparams = base.CreateParams;
if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
{
cparams.ClassName = "RICHEDIT50W";
}
return cparams;
}
}
Я не использовал вышеупомянутый метод, но то, что вы испытываете, является распространенной проблемой.Поиск RichTextEdit, RICHEDIT20W и / или RICHEDIT50W даст вам гораздо больше, чем вы когда-либо хотели узнать о внутренностях редактора форматированного текста.