У меня есть форма Windows с RichTextBox. Содержимое RichTextBox записывается в поле базы данных, которое не может превышать 64 КБ данных. Для моей цели этого текста более чем достаточно для хранения.
Я установил свойство MaxLength, чтобы не вставлять больше данных, чем разрешено.
rtcControl.MaxLength = 65536
Однако это ограничивает только количество символов, которые разрешено вставлять в текст. Но с накладными расходами на форматирование из Rtf я могу набрать больше текста, чем мне положено. Еще хуже, если я вставлю большое изображение, которое совсем не увеличивает TextLength, но Rtf Length вырастает довольно сильно.
На данный момент я проверяю длину свойства Rtf richttextboxes в событии FormClosing и показываю пользователю сообщение, если оно слишком велико. Однако это всего лишь обходной путь, потому что я хочу запретить помещать в элемент управления больше данных, чем разрешено (например, в текстовом поле, если вы превысите свойство MaxLength, в элемент управления ничего не вставляется, и вы слышите звуковой сигнал по умолчанию ().
Есть идеи, как этого добиться?
Я уже пробовал:
используя настраиваемый элемент управления, который расширяет свойство richtextbox и shadows th Rtf для перехвата вставки. Но, кажется, он не выполняется, если я добавляю текст.
Даже событие TextChanged не срабатывает, если я наберу что-л. в контроле.