[C#] TextBoxで複数行入力を実現する方法
C#のWindowsフォームアプリケーションでTextBoxに複数行入力を実現するには、TextBoxコントロールのMultiline
プロパティをtrue
に設定します。
これにより、ユーザーは複数行のテキストを入力できるようになります。
また、ScrollBars
プロパティをVertical
やBoth
に設定することで、入力が多くなった場合にスクロールバーを表示することも可能です。
さらに、WordWrap
プロパティをtrue
にすると、行の折り返しが有効になります。
これらの設定は、Visual Studioのプロパティウィンドウからも行うことができます。
複数行入力の実現方法
C#のWindowsフォームアプリケーションでTextBoxを使用する際、複数行の入力を実現するためにはいくつかのプロパティを設定する必要があります。
ここでは、主にMultiline
、ScrollBars
、WordWrap
プロパティについて解説します。
Multilineプロパティの設定
Multiline
プロパティをtrue
に設定することで、TextBoxが複数行の入力を受け付けるようになります。
デフォルトではfalse
に設定されているため、まずこのプロパティを変更する必要があります。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent(); // フォームの初期化
TextBox textBox = new TextBox();
textBox.Multiline = true; // 複数行入力を有効にする
textBox.Size = new Size(300, 200); // サイズの設定
this.Controls.Add(textBox); // フォームにTextBoxを追加
}
}
このコードを実行すると、ユーザーはTextBoxに複数行のテキストを入力できるようになります。
ScrollBarsプロパティの活用
ScrollBars
プロパティを設定することで、TextBox内のテキストが多くなった場合にスクロールバーを表示させることができます。
これにより、ユーザーは入力したテキストを簡単にスクロールして確認できます。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent(); // フォームの初期化
TextBox textBox = new TextBox();
textBox.Multiline = true; // 複数行入力を有効にする
textBox.ScrollBars = ScrollBars.Vertical; // 垂直スクロールバーを表示
textBox.Size = new Size(300, 200); // サイズの設定
this.Controls.Add(textBox); // フォームにTextBoxを追加
}
}
この設定により、TextBoxに入力されたテキストが多くなると、垂直スクロールバーが表示され、ユーザーはスクロールして内容を確認できます。
WordWrapプロパティの設定
WordWrap
プロパティをtrue
に設定すると、TextBox内でテキストが自動的に折り返されます。
これにより、長い単語や文が入力された場合でも、ユーザーはテキストを見やすく保つことができます。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent(); // フォームの初期化
TextBox textBox = new TextBox();
textBox.Multiline = true; // 複数行入力を有効にする
textBox.WordWrap = true; // テキストの折り返しを有効にする
textBox.Size = new Size(300, 200); // サイズの設定
this.Controls.Add(textBox); // フォームにTextBoxを追加
}
}
この設定により、ユーザーが入力したテキストが自動的に折り返され、視認性が向上します。
応用例
C#のWindowsフォームを使用して、TextBoxの複数行入力機能を活用したさまざまなアプリケーションを作成することができます。
ここでは、メモ帳アプリ、フィードバックフォーム、ログ表示ウィンドウの実装例を紹介します。
メモ帳アプリの作成
メモ帳アプリは、ユーザーが自由にテキストを入力し、保存することができるシンプルなアプリケーションです。
以下のコードは、基本的なメモ帳アプリの実装例です。
partial class MyForm : Form
{
private TextBox textBox;
private Button saveButton;
public MyForm()
{
InitializeComponent(); // フォームの初期化
textBox = new TextBox();
textBox.Multiline = true; // 複数行入力を有効にする
textBox.Size = new Size(400, 300); // サイズの設定
this.Controls.Add(textBox); // フォームにTextBoxを追加
saveButton = new Button();
saveButton.Text = "保存"; // ボタンのテキスト
saveButton.Click += SaveButton_Click; // ボタンクリックイベントの設定
this.Controls.Add(saveButton); // フォームにボタンを追加
}
private void SaveButton_Click(object sender, EventArgs e)
{
// ファイル保存ダイアログを表示
using (SaveFileDialog saveFileDialog = new SaveFileDialog())
{
saveFileDialog.Filter = "テキストファイル (*.txt)|*.txt|すべてのファイル (*.*)|*.*";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
// テキストをファイルに保存
System.IO.File.WriteAllText(saveFileDialog.FileName, textBox.Text);
}
}
}
}
このアプリでは、ユーザーが入力したテキストを指定したファイルに保存することができます。
フィードバックフォームの実装
フィードバックフォームは、ユーザーからの意見や感想を収集するためのアプリケーションです。
以下のコードは、フィードバックフォームの実装例です。
partial class MyForm : Form
{
private TextBox feedbackTextBox;
private Button submitButton;
public MyForm()
{
InitializeComponent(); // フォームの初期化
feedbackTextBox = new TextBox();
feedbackTextBox.Multiline = true; // 複数行入力を有効にする
feedbackTextBox.Size = new Size(400, 200); // サイズの設定
this.Controls.Add(feedbackTextBox); // フォームにTextBoxを追加
submitButton = new Button();
submitButton.Text = "送信"; // ボタンのテキスト
submitButton.Click += SubmitButton_Click; // ボタンクリックイベントの設定
this.Controls.Add(submitButton); // フォームにボタンを追加
}
private void SubmitButton_Click(object sender, EventArgs e)
{
// フィードバックを処理するロジックをここに追加
MessageBox.Show("フィードバックが送信されました。", "送信完了", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
このフィードバックフォームでは、ユーザーが入力した内容を送信ボタンをクリックすることで処理することができます。
実際のデータ送信機能は、必要に応じて追加できます。
ログ表示ウィンドウの作成
ログ表示ウィンドウは、アプリケーションの動作状況やエラーメッセージを表示するためのウィンドウです。
以下のコードは、ログ表示ウィンドウの実装例です。
partial class MyForm : Form
{
private TextBox logTextBox;
private Button addLogButton;
public MyForm()
{
InitializeComponent(); // フォームの初期化
logTextBox = new TextBox();
logTextBox.Multiline = true; // 複数行入力を有効にする
logTextBox.Size = new Size(400, 300); // サイズの設定
logTextBox.ReadOnly = true; // 読み取り専用に設定
this.Controls.Add(logTextBox); // フォームにTextBoxを追加
addLogButton = new Button();
addLogButton.Text = "ログ追加"; // ボタンのテキスト
addLogButton.Click += AddLogButton_Click; // ボタンクリックイベントの設定
this.Controls.Add(addLogButton); // フォームにボタンを追加
}
private void AddLogButton_Click(object sender, EventArgs e)
{
// ログメッセージを追加
logTextBox.AppendText($"[{DateTime.Now}] ログメッセージ\n"); // 現在の日時とメッセージを追加
}
}
このログ表示ウィンドウでは、ボタンをクリックすることで新しいログメッセージが追加され、ユーザーはアプリケーションの動作状況を確認できます。
まとめ
この記事では、C#のWindowsフォームにおけるTextBoxを使用した複数行入力の実現方法や、ユーザーインターフェースの改善方法について詳しく解説しました。
また、実際のアプリケーション例としてメモ帳アプリ、フィードバックフォーム、ログ表示ウィンドウの作成方法も紹介しました。
これらの知識を活用して、独自のアプリケーションを作成し、ユーザーにとって使いやすいインターフェースを提供してみてください。