Richtextbox (.net Winforms) Проблема (или альтернатива)
-
19-09-2019 - |
Вопрос
У меня проблема с .net Richtextbox контроль. Похоже, что он не поддерживает форматирование табличных ячеек, что забавно, потому что большую часть времени я создаю таблицы, я хочу, чтобы содержимое ячейки было выровненным (числами, валютой).
Если я попытаюсь открыть документ WordPad в RichTextBox, он игнорирует (и на самом деле Удаляет) команды для выравнивания ячейки. Я попробовал несколько обходных путей, но не преуспел.
Может ли кто -нибудь подумать о идее исправить это? (Без использования шрифтов и пробелов с фиксированной шириной) Это было бы лучшим решением, так как другой код уже работает нормально, поэтому, если только что нужно, это грязный хак, это было бы здорово.
Или есть альтернатива с открытым исходным кодом для текстового редактора .NET, который вы можете порекомендовать? Мне нужен пользовательский элемент управления, который я могу внедрить в форму Windows и получить доступ к содержимому программно (создавать контент или что -то добавить). Я некоторое время искал в Интернете, но нашел только веб -элемент управления (AJAX/JavaScript).
Существуют также редакторы HTML Wysiwyg, которые я мог бы использовать, но все они в основном представляют собой браузер IE, встроенный и отредактированный с использованием MSHTML, и это немного странно иметь это в приложении Winforms (возможно, я ошибаюсь). И в этом случае нам понадобится дополнительное время для реализации генератора контента для HTML - хотя его намного проще читать и генерировать, чем RTF IMHO.
Что вы, ребята, считаете лучшими для этой цели?
Решение
Если вы все еще идете по пути .NET Winforms, тогда наследуйте от RichTextBox и добавите следующий код, он преобразует RichTextBox в нечто «полезное»:
[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;
}
}
Поиск из здесь.
Хорошего дня:)
Другие советы
3. Есть также редакторы HTML Wysiwyg, которые я мог бы использовать, но все они в основном встроены и отредактированы с использованием MSHTML, и это немного странно иметь это в приложении Winforms (возможно, я ошибаюсь).
Я написал редактор HTML Wysiwyg: The ModelText HTML Control для .NET. Анкет Это чистый управляемый код, без зависимости от браузера; Он экспортирует .NET API, которые позволяют вам программно получить доступ к его содержимому.
Следующая версия, которая будет выпущена (через несколько дней), будет поддерживать выравнивание ячеек (поддерживая свойство CSS «Text-Align»).