6月 17

タブ(Tab)の入力を許可

通常、テキストボックスにて入力中にTabキーが押されると
次のコントロールへフォーカスが遷移しますが
Tab文字の入力を許可したい場合は
AcceptsTabプロパティーにtrueを設定します。

なお、この設定が有効となるテキストボックスは
複数行入力が可能なテキストボックスのみです。
(複数行入力を可能にする方法は別節を参照してください)

textBox1.AcceptsTab = true;
6月 17

大文字/小文字の入力に限定したい

入力できる(表示される)文字を
大文字或いは小文字だけに限定したい場合は
CharacterCasingプロパティーに大文字/小文字の列挙体を設定します。

なお、既に入力済み(表示済み)の状態で
同プロパティーの値を設定すると
そのタイミングで表示内容も変換されます。

// 入力(表示)可能文字を小文字に限定
textBox1.CharacterCasing = CharacterCasing.Lower;

// 入力(表示)可能文字を小文字に限定
textBox1.CharacterCasing = CharacterCasing.Upper;

// 入力(表示)可能文字の限定解除(大小はそのまま)
textBox1.CharacterCasing = CharacterCasing.Normal;
6月 17

入力可能文字種を設定(IMEのON/OFFなど)

入力可能な文字種を設定するには
ImeModeプロパティーに列挙体を設定します。

【補足】
	以下の値を設定可能です。
	
	    Alpha           半角英数
	    AlphaFull       全角英数
	    Disable         IMEを無効に(IMEを利用不可にします)
	    Hangul          ハングル文字
	    HangulFull      ハングル文字
	    Hiragana        全角ひらがな
	    Inherit         親コントロールのIMEモードを継承
	    Katakana        全角カタカナ
	    KatakanaHalf    半角カタカナ
	    NoControl       制御しません(デフォルト)
	    Off             IMEをOFFに
	    On              IMEをONに
	
	このうち、Disableは恒久的な設定ですが
	その他は、プロパティーを設定した時に
	IMEのモードを切り返るだけの一時的なものです。
	当然ながら、ユーザが自分でIMEのモードを変更したり
	ON/OFFすると、状態は変化します。
// IMEを無効にして利用不可に
textBox1.ImeMode = ImeMode.Disable;

// ひらがな入力モードに
textBox1.ImeMode = ImeMode.Hiragana;

// 半角英数入力モードに
textBox1.ImeMode = ImeMode.Alpha;
6月 17

指定範囲を選択状態にする(反転させる)

Select(,)関数で部分選択。(インデックスは0から)
SelectAll()で全テキストを選択。

なお、最後にSelect()で
テキストコントロールをアクティブにしているのは
範囲選択した際に
他のコントロールがアクティブだと
反転表示されないからです。

テキストコントロールがそもそもアクティブであれば最後のSelect()は不要です。

同じSelect関数でも
範囲選択する用途と
コントロールをアクティブにする用途とに使い分けているので
(オーバーロードされているので)
間違えないようにしてください。

// 先頭から2文字を選択状態に
textBox1.Select(0, 2);

// すべての文字を選択状態に
textBox1.SelectAll();

// テキストボックスをアクティブにします。
textBox1.Select();
6月 17

入力桁数を制限する

MaxLengthプロパティーに桁数を設定します。

なお、既に入力済みの状態で
同プロパティーを設定しても
入力内容は影響を受けませんので
特に理由が無い場合はデザイン時に設定しておくとよいです。

また、桁数は半角/全角の区別がありません。

// 3桁まで
textBox1.MaxLength = 3;
6月 17

TableLayoutPanelの使い方

TableLayoutPanelを使えば
コントロールのレイアウトが楽になります。

例えば下のように
Formを4×4の格子状に分割し
Formのサイズ変更に応じて中のコントロールのサイズも変更させたい場合など
TableLayoutPanelを使えば各コントロールの位置調整やサイズ変更を自動で行うことができます。

tablelayoutpanel

この時
TableLayoutPanelのColumnsコレクションは次のように

tablelayoutpanel_col

同様にRowsコレクションは次のようになります。

tablelayoutpanel_row

各ColumnとRowのサイズを絶対値、或いはパーセントで指定することで
作る側はFormのサイズを気にせずデザインすることが可能です。

但し、格子の中には1つのコントロールしか配置できないので注意です。