テキストボックスに長い文字列をペーストすると途中でテキストが途切れる

テキストボックスに長い文字列をペーストすると途中でテキストが途切れる場合があります。

再現手順

UI

以下のUIを作成します。MultiLinesプロパティをtrueにしたTextBoxを配置します。(Anchorプロパティを"Left,Top,Right,Bottom"にします。)
テキストボックスに長い文字列をペーストすると途中でテキストが途切れる:画像1

コード

(コードは記述しません)

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
テキストボックスに長い文字列をペーストすると途中でテキストが途切れる:画像2

大きなテキストファイルをメモ帳などで開きすべてをコピーします。
テキストボックスに長い文字列をペーストすると途中でテキストが途切れる:画像3

アプリケーションのテキストボックスに貼りつけます。が、途中までしか貼りつけられていないことが確認できます。この状態でテキストボックスに追記しても文字の入力もできません。
テキストボックスに長い文字列をペーストすると途中でテキストが途切れる:画像4

原因

WindowsフォームのTextBoxを配置した際にデフォルトではMaxLengthプロパティの値が"32767"になるため、長い文字列は入力を受け付けないことが原因です。

対策

以下の修正をします。

WindowsフォームデザイナでTextBoxを選択します。プロパティウィンドウのMaxLengthプロパティを確認します。デフォルトでは値は"32767"になっています。
テキストボックスに長い文字列をペーストすると途中でテキストが途切れる:画像5

値を"0"に変更します。
テキストボックスに長い文字列をペーストすると途中でテキストが途切れる:画像6

アプリケーションを実行し、再度テキストを貼り付けます。末尾までテキストがペーストできていることが確認できました。
テキストボックスに長い文字列をペーストすると途中でテキストが途切れる:画像7

TextBoxで長いテキストを扱う場合はMaxLengthプロパティを変更し忘れないよう注意してください。

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2014-03-03
Copyright © 1995–2025 iPentec all rights reserverd.