DOBON.NET DOBON.NETプログラミング掲示板過去ログ

リッチテキストボックスの文字制限

環境/言語:[XP、C#]
分類:[.NET]

リッチテキストボックスの文字数をバイトで制限したいのですが、どのようにしたらいいのでしょうか?
■No12026に返信(うささんの記事)
> リッチテキストボックスの文字数をバイトで制限したいのですが、どのようにしたらいいのでしょうか?

以下のようにどうですか?
(VB.NETで返事いたしましたが、C#と文法だけ違います。)
1.コントロールに入力できる最大文字数を指定します。(最大文字数制限)
2.System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(Trim(Me.RichTextBox1.Text))
(指定した System.String をエンコードするために必要なバイト数
を計算します。 )
テキストボックスですが、以前同様の質問がありました。

最大テキストボックス
http://dobon.net/vb/bbs/log3-16/9718.html

上記の方の回答にもありますが、今、下のように作ってあるのですが、ただのテキストボックスだと大丈夫なのですが、リッチテキストボックスだと何故か50バイト以上入力できてしまうんです。
どこがいけないのか分かりません。

private void richTextBox1_TextChanged(object sender, System.EventArgs e)
{
string rtext = richTextBox_Comment.Text;
byte[] rbyte = System.Text.Encoding.GetEncoding("Shift_JIS").GetBytes
(rtext);
if ( rbyte.Length > (byte)50 )
{
richTextBox1.Text = rtext.Substring( 0,rtext.Length - 1 );
return;
}

DOBON.NET | プログラミング道 | プログラミング掲示板