我有一个带有 RichTextBox 的 Windows 窗体。RichTextBox 的内容被写入限制为 64k 数据的数据库字段。就我的目的而言,存储的文本绰绰有余。
我设置了 MaxLength 属性以避免插入比允许更多的数据。
rtcControl.MaxLength = 65536
但是,这只限制了允许在文本中放入的字符数量。但是由于 Rtf 的格式化开销,我可以输入比我应该允许的更多的文本。如果我插入一个大图像,它甚至会变得更糟,它根本不会增加 TextLength 但 Rtf 长度会增长很多。
目前,我在 FormClosing 事件中检查 Richttextboxes 的 Rtf 属性的长度,如果它太大,则向用户显示一条消息。但是,这只是一种解决方法,因为我想禁止将超过允许的数据放入控件中(例如在文本框中,如果您超过 MaxLength 属性,则不会将任何内容插入到控件中并且您会听到默认的 beep()。
任何想法如何实现这一目标?
我已经尝试过:
使用自定义控件扩展了richtextbox 和阴影 th Rtf 属性来拦截插入。但是,如果我添加文本,它似乎不会执行。
如果我输入 smth,即使 TextChanged 事件也不会触发。在控制中。