Windowsフォームアプリケーションのテキストボックス(TextBox)に改行(リターン)を入力できるようにする方法を紹介します。
本記事では、Visual Studioで作成したC#のWindowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。
目次
テキストボックスのテキストを改行する
テキストボックスにテキストを改行して入力するには、System.Windows.Forms名前空間にあるTextBoxクラスのMultilineプロパティを使用します。
Multilineプロパティは、フォームデザイナーのプロパティグリッド、またはコードで設定することができます。
デザイナーのプロパティグリッドで設定する
フォームデザイナーを開きます。
フォームデザイナーを開いたら、プロパティウィンドウを表示します。
プロパティウィンドウが表示されていない場合は、メニューバーの「表示」メニューにある「プロパティ ウィンドウ」をクリックするかF4キーを押してください。
プロパティウィンドウが表示されたら、フォームに配置したテキストボックスをクリックして選択します。
上記の画像のプロパティグリッドは項目別ではなくアルファベット順で表示しています。
テキストボックスのテキストを改行できるようにします。
デザイナーのプロパティグリッドにあるMultilineプロパティを選択します。
MultilineプロパティのドロップダウンリストボックスからTrueを選択します。
コードで設定する
フォームに「textBox1」という名前のテキストボックスを配置し、コードエディタを表示して以下のコードを入力します。
1 2 |
// 複数行入力可能にする this.textBox1.Multiline = true; |
上記のコードはフォームのコンストラクタ内や、フォームのロードイベント(Form.Load)メソッド内、またはフォームのオンロード(OnLoad)メソッドをオーバーライドしたメソッド内に記述することで、フォームの起動時に設定することができます。
サンプルプログラム
サンプルとして複数行のテキストを入力できるテキストボックスを配置した、簡易なメモ帳のプログラムを作成します。
ユーザーインターフェース
フォームには、テキストを新規作成する「新規」ボタン(button1)と、ファイルを開いてテキストを表示する「開く」ボタン(button2)と、テキストをファイルに保存する「保存」ボタン(button3)を配置し、テキストを編集するテキストボックス(textBox1)を配置します。
フォームデザイナーでテキストボックスのMultilineプロパティの値をTrueに設定します。
MultilineプロパティをTrueに設定することで、デザイナー上でサイズ(高さ)を変更することができるようになりますので、フォームに合わせてサイズを調整します。
ソースコード
ボタンがクリックされた時のイベント処理とフォームを閉じる時のイベント処理を記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
using System; using System.Windows.Forms; // System.IOのusingを追加 using System.IO; namespace WindowsFormsApp1 { public partial class Form1 : Form { // コンストラクタ public Form1() { InitializeComponent(); // テキストボックスのアンカーを上下左右に設定 this.textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom; } // アプリケーション名 private static readonly string AppName = "簡易テキストエディター"; // ファイル名 private string FileName { get; set; } // 新規ボタンクリックイベントメソッド private void button1_Click(object sender, EventArgs e) { try { this.New(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } // 開くボタンクリックイベントメソッド private void button2_Click(object sender, EventArgs e) { try { this.Open(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } // 保存ボタンクリックイベントメソッド private void button3_Click(object sender, EventArgs e) { try { this.Save(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } // フォーム閉じるイベント private void Form1_FormClosing(object sender, FormClosingEventArgs e) { try { // 確認メッセージダイアログボックスを表示 DialogResult dialogResult = MessageBox.Show( "テキストを保存しますか?", AppName, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information); // 「キャンセル」 if (dialogResult == DialogResult.Cancel) { e.Cancel = true; return; } // 「はい」 if (dialogResult == DialogResult.Yes) { this.Save(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } // 新規 private void New() { // 確認メッセージダイアログボックスを表示 DialogResult dialogResult = MessageBox.Show( "新しいテキストを作成しますか?", AppName, MessageBoxButtons.YesNo, MessageBoxIcon.Information); // 「いいえ」 if (dialogResult == DialogResult.No) { return; } // ファイル名をクリア this.FileName = ""; // テキストをクリア this.textBox1.Text = ""; } // 開く private void Open() { using (OpenFileDialog openFileDialog = new OpenFileDialog()) { openFileDialog.Filter = "テキストファイル (*.txt)|*.txt"; // ファイルを開くダイアログボックスを表示 DialogResult dialogResult = openFileDialog.ShowDialog(this); // 「キャンセル」 if (dialogResult == DialogResult.Cancel) { return; } this.FileName = openFileDialog.FileName; // ファイルを開く string contents = File.ReadAllText(this.FileName); // テキストボックスのテキストを設定 this.textBox1.Text = contents; } } // 保存 private void Save() { if (string.IsNullOrEmpty(this.FileName)) { using (SaveFileDialog saveFileDialog = new SaveFileDialog()) { saveFileDialog.Filter = "テキストファイル (*.txt)|*.txt"; // 名前を付けて保存ダイアログボックスを表示 DialogResult dialogResult = saveFileDialog.ShowDialog(this); // 「キャンセル」 if (dialogResult == DialogResult.Cancel) { return; } this.FileName = saveFileDialog.FileName; } } // テキストボックスのテキストを取得 string contents = this.textBox1.Text; // ファイルに保存する File.WriteAllText(this.FileName, contents); } } } |
プログラムの実行
プロジェクトをビルドして実行(デバッグ)してフォームを表示します。
「新規」ボタンをクリックすると、確認メッセージダイアログボックスが表示され、新しいテキストが作成されます。
「開く」ボタンをクリックすると、ファイルを開くダイアログボックスが表示され、ファイルを開いてテキストを表示します。
「保存」ボタンをクリックすると、テキストがファイルとして保存されていない場合は、名前を付けて保存ダイアログボックスが表示され、テキストをファイルに保存します。ファイルとして保存されている場合は、上書き保存します。
フォームを閉じる前には、確認メッセージダイアログボックスが表示されます。