複数行テキストボックスのテキストを自動改行させない [C#] TextBox

Windowsフォームアプリケーションで、MultilineプロパティをTrueに設定したテキストボックスでは、複数行のテキストを入力することができます。

テキストボックスに複数行の文字列を入力できるように設定する [C#] TextBox
Windowsフォームアプリケーションのテキストボックス(TextBox)に改行(リターン)を入力できるようにする方法を紹介します。 ...

複数行のテキストが入力できる状態に設定したテキストボックスは、デフォルト(既定値)では1行の文字列がテキストボックスのWidth(横幅)までくると、自動で改行(折り返し)されます。

自動で改行して折り返されたテキストボックスのテキスト

テキストが自動で折り返されることで、1行の文字列がテキストボックスのWidthを超えても途中から見えなくなることはなくなります。
しかし、場合によっては、自動で折り返さずにそのまま1行の文字列として表示したい場合があります。

そこで今回はC#のWindowsフォームアプリケーションで、複数行入力できるテキストボックスを配置した時に、テキストが自動で改行されないようにする方法を紹介します。

本記事では、Visual Studioで作成したC#のWindowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。

Windowsフォームアプリケーションのプロジェクト(ソリューション)を作成する。[C#]
Visual StudioでC#のWindowsフォームアプリケーションのプロジェクト(ソリューション)を作成する方法を記載します。 ...

自動折り返し(自動改行)の有無を設定する

テキストボックスに入力されたテキストが右端まで来た際に自動で折り返すかどうかを設定するには、System.Windows.Forms名前空間にあるTextBoxクラスのWordWrapプロパティを使用します。

WordWrapプロパティは、フォームデザイナーのプロパティグリッド、またはコードで設定することができます。

デザイナーのプロパティグリッドで設定する

フォームデザイナーを開きます。
フォームデザイナーを開いたら、プロパティウィンドウを表示します。
プロパティウィンドウが表示されていない場合は、メニューバーの「表示」メニューにある「プロパティ ウィンドウ」をクリックするかF4キーを押してください。
プロパティウィンドウが表示されたら、フォームに配置したテキストボックスをクリックして選択します。

フォームデザイナーのテキストボックスのプロパティグリッド
上記の画像のプロパティグリッドは項目別ではなくアルファベット順で表示しています。

テキストの自動折り返しの有無を設定します。
デザイナーのプロパティグリッドにあるWordWrapプロパティを選択します。
WordWrapプロパティはデフォルト(既定値)でTrueになっていますので、自動折り返しを行わないようにする時は、WordWrapプロパティのドロップダウンリストボックスからFalseを選択します。

テキストボックスのWordWrapプロパティ

WordWrapを設定する場合はテキストボックスが複数行入力可能になっている必要がありますので、Multilineプロパティで複数行テキストが入力できるようにしておきます。
デザイナーのプロパティグリッドにあるMultilineプロパティを選択し、ドロップダウンリストボックスからTrueを選択してください。

テキストボックスのMultilineプロパティ

コードで設定する

フォームに「textBox1」という名前のテキストボックスを配置し、コードエディタを表示して以下のコードを入力します。

上記のコードはフォームのコンストラクタ内や、フォームのロードイベント(Form.Load)メソッド内、またはフォームのオンロード(OnLoad)メソッドをオーバーライドしたメソッド内に記述することで、フォームの起動時に設定することができます。

サンプルプログラム

サンプルとして複数行のテキストを入力できるテキストボックスを配置した、簡易なメモ帳のプログラムを作成します。

ユーザーインターフェース

フォームには、テキストを新規作成する「新規」ボタン(button1)と、ファイルを開いてテキストを表示する「開く」ボタン(button2)と、テキストをファイルに保存する「保存」ボタン(button3)を配置し、テキストを編集するテキストボックス(textBox1)を配置します。

テキストボックスのWordWrapプロパティ設定用のサンプルフォームのデザイン

テキストボックスは、複数行入力できるようにMultilineプロパティの値をTrueに設定して、高さを広げておきます。

ソースコード

ボタンがクリックされた時のイベント処理とフォームを閉じる時のイベント処理を記述します。

プログラムの実行

プロジェクトをビルドして実行(デバッグ)してフォームを表示します。

テキストボックスのWordWrapプロパティ設定用のサンプルフォームを起動

テキストボックスに自動で折り返しされるように文字列を入力します。

テキストボックスのWordWrapプロパティ設定用のサンプルフォームで文字列を入力

ボタンをクリックすると、テキストボックスの右端で自動で折り返されていたテキストが、1行で表示されてスクロールバーが有効になります。

テキストボックスのWordWrapプロパティ設定用のサンプルフォームで自動改行が解除されスクロールバーが有効に