У меня есть форма Windows с RichTextBox. Содержимое RichTextBox записывается в поле базы данных, которое ограничено данными 64k. Для моей цели это более чем достаточно для хранения текста.Windows.Forms RichTextBox Control - Избегайте вставки больших данных
Я установил свойство MaxLength, чтобы избежать вставки большего количества данных, чем разрешено.
rtcControl.MaxLength = 65536
В любом случае, это ограничивает количество символов, которые разрешено помещать в текст. Но с форматированием накладных расходов из Rtf я могу напечатать больше текста, чем мне должно быть позволено. Это даже ухудшается, если я вставляю большое изображение, которое не увеличивает TextLength, но Rtf Length растет довольно много.
В настоящее время я проверяю длину свойства Rtf richttextboxes в событии FormClosing и отображаю сообщение пользователю, если оно велико. Однако это просто обходной путь, потому что я хочу запретить помещать больше данных, чем разрешено в элемент управления (например, в текстовом поле, если вы превысите свойство MaxLength, в элемент управления ничего не вводится, и вы слышите звуковой сигнал по умолчанию().
Любые идеи, как для того чтобы достигнуть этого
Я уже пробовал:?.
с помощью пользовательского элемента управления, который расширяет RichTextBox и тени е Rtf собственности на перехват insertation Но, кажется, это не выполняется, если I добавить текст.
Даже событие TextChanged не срабатывает, если я набираю smth. в контроле.
Я еще не пробовал, но зачем вы используете строковый строитель в этом случае? Я получаю лучшую производительность по сравнению со строкой? –
@SchlaWiener - Да, наверное, строка будет лучше. Первоначально я думал об использовании StringBuilder для добавления нового материала RTF, но отказался от этой идеи в пользу более простого подхода «копировать все». – itsmatt