通常、テキストボックスにて入力中にTabキーが押されると
次のコントロールへフォーカスが遷移しますが
Tab文字の入力を許可したい場合は
AcceptsTabプロパティーにtrueを設定します。
なお、この設定が有効となるテキストボックスは
複数行入力が可能なテキストボックスのみです。
(複数行入力を可能にする方法は別節を参照してください)
textBox1.AcceptsTab = true;
通常、テキストボックスにて入力中にTabキーが押されると
次のコントロールへフォーカスが遷移しますが
Tab文字の入力を許可したい場合は
AcceptsTabプロパティーにtrueを設定します。
なお、この設定が有効となるテキストボックスは
複数行入力が可能なテキストボックスのみです。
(複数行入力を可能にする方法は別節を参照してください)
textBox1.AcceptsTab = true;
入力できる(表示される)文字を
大文字或いは小文字だけに限定したい場合は
CharacterCasingプロパティーに大文字/小文字の列挙体を設定します。
なお、既に入力済み(表示済み)の状態で
同プロパティーの値を設定すると
そのタイミングで表示内容も変換されます。
// 入力(表示)可能文字を小文字に限定 textBox1.CharacterCasing = CharacterCasing.Lower; // 入力(表示)可能文字を小文字に限定 textBox1.CharacterCasing = CharacterCasing.Upper; // 入力(表示)可能文字の限定解除(大小はそのまま) textBox1.CharacterCasing = CharacterCasing.Normal;
入力可能な文字種を設定するには
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;
テキストを編集前の状態に戻します。
入力途中でショートカットキー(CTRL+Z)
することでも同様のことができます。
【補足】 ClearUndo()関数をコールすることで Undoバッファの内容をクリアーします。 Undo不可になります。
textBox1.Undo();
Select(,)関数で部分選択。(インデックスは0から)
SelectAll()で全テキストを選択。
なお、最後にSelect()で
テキストコントロールをアクティブにしているのは
範囲選択した際に
他のコントロールがアクティブだと
反転表示されないからです。
テキストコントロールがそもそもアクティブであれば最後のSelect()は不要です。
同じSelect関数でも
範囲選択する用途と
コントロールをアクティブにする用途とに使い分けているので
(オーバーロードされているので)
間違えないようにしてください。
// 先頭から2文字を選択状態に textBox1.Select(0, 2); // すべての文字を選択状態に textBox1.SelectAll(); // テキストボックスをアクティブにします。 textBox1.Select();
ReadOnlyプロパティーにtrueを設定します。
実行中に設定してもよし、
デザイン時に設定してもよし。
textBox1.ReadOnly = true;
PasswordCharプロパティーに
伏字となる文字を1文字与えます。
(半角でも全角でもどちらでもOKです)
どんな文字を入力しようとしても
すべて伏字で表示されます。
textBox1.PasswordChar = '*';
MaxLengthプロパティーに桁数を設定します。
なお、既に入力済みの状態で
同プロパティーを設定しても
入力内容は影響を受けませんので
特に理由が無い場合はデザイン時に設定しておくとよいです。
また、桁数は半角/全角の区別がありません。
// 3桁まで textBox1.MaxLength = 3;
Clear()関数をコールする、或いは
Textプロパティーを設定します。
textBox1.Clear(); textBox1.Text = ""; textBox1.Text = string.Empty;
TableLayoutPanelを使えば
コントロールのレイアウトが楽になります。
例えば下のように
Formを4×4の格子状に分割し
Formのサイズ変更に応じて中のコントロールのサイズも変更させたい場合など
TableLayoutPanelを使えば各コントロールの位置調整やサイズ変更を自動で行うことができます。
この時
TableLayoutPanelのColumnsコレクションは次のように
同様にRowsコレクションは次のようになります。
各ColumnとRowのサイズを絶対値、或いはパーセントで指定することで
作る側はFormのサイズを気にせずデザインすることが可能です。
但し、格子の中には1つのコントロールしか配置できないので注意です。