RichTextBox を含む Windows フォームがあります。RichTextBox のコンテンツは、64k データに制限されたデータベース フィールドに書き込まれます。私の目的では、それは保存するのに十分なテキストです。
許可されているよりも多くのデータを挿入しないように、MaxLength プロパティを設定しました。
rtcControl.MaxLength = 65536
ただし、これはテキストに入力できる文字数を制限するだけです。しかし、Rtf による書式設定のオーバーヘッドにより、許可されているよりも多くのテキストを入力できます。大きな画像を挿入するとさらに悪化します。TextLength はまったく増加しませんが、Rtf Length はかなり大きくなります。
現時点では、FormClosing イベントで richttextboxes の Rtf プロパティの長さを確認し、大きすぎる場合はユーザーにメッセージを表示します。ただし、これは単なる回避策です。これは、コントロールに許可されているよりも多くのデータを配置することを禁止したいためです (MaxLength プロパティを超えた場合、テキスト ボックスのように、コントロールには何も挿入されず、デフォルトの beep() が聞こえます)。
これを達成する方法はありますか?
私はすでに試しました:
richtextbox を拡張し、Rtf プロパティをシャドウするカスタム コントロールを使用して、挿入をインターセプトします。しかし、テキストを追加すると実行されないようです。
smth と入力すると、TextChanged イベントでさえ発生しません。コントロールで。