Windowsフォームアプリケーションのフォームに配置したテキストボックスのMultilineプロパティをTrueに設定すると、複数行のテキストを入力することができます。
複数行入力できるようにしたテキストボックスを配置したテキストエディターのようなアプリケーションを作成する際に、Tabキーを押してタブ文字を入力した場合があります。
今回はテキストボックスでタブ文字を入力できるようにする方法を紹介します。
本記事では、Visual Studioで作成したC#のWindowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。
目次
テキストボックスにタブ文字(Tab)を入力可能にする
WindowsフォームのテキストボックスでTabSystem.Windows.Forms名前空間にあるTextBoxクラスのAcceptsTabプロパティを使用します。
AcceptsTabプロパティの設定は、MultilineプロパティがTrueに設定されている場合(テキストボックスに複数行の入力が許可されている場合)にのみ有効になります。
AcceptsTabプロパティは、フォームデザイナーのプロパティグリッド、またはコードで設定することができます。
デザイナーのプロパティグリッドで設定する
フォームデザイナーを開きます。
フォームデザイナーを開いたら、プロパティウィンドウを表示します。
プロパティウィンドウが表示されていない場合は、メニューバーの「表示」メニューにある「プロパティ ウィンドウ」をクリックするかF4キーを押してください。
プロパティウィンドウが表示されたら、フォームに配置したテキストボックスをクリックして選択します。
上記の画像のプロパティグリッドは項目別ではなくアルファベット順で表示しています。
デザイナーのプロパティグリッドにあるAcceptsTabプロパティを選択します。
AcceptsTabプロパティのドロップダウンリストボックスからTrueを選択します。
コードで設定する
フォームに「textBox1」という名前のテキストボックスを配置し、コードエディタを表示して以下のコードを入力します。
1 2 |
// テキストボックスにタブ文字を入力できるようにする this.textBox1.AcceptsTab = true; |
上記のコードはフォームのコンストラクタ内や、フォームのロードイベント(Form.Load)メソッド内、またはフォームのオンロード(OnLoad)メソッドをオーバーライドしたメソッド内に記述することで、フォームの起動時に設定することができます。
サンプルプログラム
サンプルとして複数行のテキストを入力できるテキストボックスを配置して、Tabキーを押した時にタブ文字が入力できるようにするプログラムを作成します。
ユーザーインターフェース
フォームには、テキストを編集するテキストボックス(textBox1)と、タブ文字の入力可否を設定するボタン(button1)を配置します。
テキストボックスは、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 |
using System; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { // コンストラクタ public Form1() { InitializeComponent(); // テキストボックスにスクロールバーを表示する this.textBox1.ScrollBars = ScrollBars.Vertical; // テキストボックスにTab文字を入力可能にする this.textBox1.AcceptsTab = true; } // タブ文字の入力可否を切り替える private void button1_Click(object sender, EventArgs e) { try { // 現状の設定値と逆の真偽値(True/False)を設定する this.textBox1.AcceptsTab = !this.textBox1.AcceptsTab; } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } |
プログラムの実行
プロジェクトをビルドして実行(デバッグ)してフォームを表示します。
テキストボックスにタブ文字を含んだ文字列を入力します。
Tabキーで、タブ文字が入力できるのが確認できます。
ボタン(button1)をクリックしてタブ文字が入力できないようにします。
Tabキーを押してもタブ文字が入力できなくなり、ボタンにフォーカスが移動します。