テキストコントロールでは様々な視覚的な補助機能を提供しています。この章ではそれらの機能について解説します。
AlternateText プロパティを使用すれば、コントロールが未入力のときに代わりに表示するテキストを文字列として設定することができます。
(図) 代替テキストを表示したテキストコントロール
AlternateText プロパティは、TextBoxAlternateText クラスを参照します。コントロールにフォーカスがあるときのテキストを設定するには、TextBoxAlternateText クラスのNull プロパティを、コントロールにフォーカスがないときのテキストを設定するには、TextBoxAlternateText クラスのDisplayNull プロパティを使用します。これらのプロパティはAlternateText クラスを参照し、次の2つを設定することができます。
次のサンプルコードは、代替テキストを設定する例です。
' フォーカスがないときの代替テキストを設定します。 GcTextBox1.AlternateText.DisplayNull.Text = "氏名を入力してください。" GcTextBox1.AlternateText.DisplayNull.ForeColor = Color.Gray ' 入力中の代替テキストを設定します。 GcTextBox1.AlternateText.Null.Text = "全角文字で入力してください。" GcTextBox1.AlternateText.Null.ForeColor = Color.Pink
// フォーカスがないときの代替テキストを設定します。 gcTextBox1.AlternateText.DisplayNull.Text = "氏名を入力してください。"; gcTextBox1.AlternateText.DisplayNull.ForeColor = Color.Gray; // 入力中の代替テキストを設定します。 gcTextBox1.AlternateText.Null.Text = "全角文字で入力してください。"; gcTextBox1.AlternateText.Null.ForeColor = Color.Pink;
ShowRecommendedValue プロパティを使用すると、テキストコントロールで値が未入力のとき、入力候補となる値をグレー表示することができます。入力候補として表示されたテキストの値は、表示された候補値のまま適用するか、全ての値を変更して入力値として適用することができます。入力候補として表示される値は、RecommendedValue プロパティで設定します。
候補値を表示可能な他のコントロールでは、ショートカットコンポーネントのショートカットキーとして、デフォルトで[Ctrl]+[Enter]キーに対して候補値を確定する動作が定義されます。これにより他のコントロールでは[Ctrl]+[Enter]キーを押下することで値を確定できますが、テキストコントロールについてはデフォルトでキーが定義されないため、[Ctrl]+[Enter]キーを押下しても値を確定できません。
キーを押下して値を確定するためには、コントロールのショートカット機能に、手動で任意のキーに対してApplyRecommendedValue メソッドを追加してください。[Ctrl]+[Enter]キーに対して設定することも可能です。
また、ApplyRecommendedValue メソッドを使って入力値として適用することもできます。
|
HighlightText プロパティを使用すると、フォーカスを受け取ったときに、コントロールのすべてのテキストを選択状態にできます。
コントロールからフォーカスが移動した後もコントロールのハイライト表示を保持するには、HideSelection プロパティを使用します。コントロールの一部分のみ選択状態にするには、SelectionStart プロパティとSelectionLength プロパティを組み合わせて使用します。
次のサンプルコードは、コントロールがフォーカスを受け取った時にコントロール内の最初の文字列から3文字を選択する例です。
Private Sub GcTextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles GcTextBox1.Enter GcTextBox1.SelectionStart = 0 GcTextBox1.SelectionLength = 3 End Sub
private void gcTextBox1_Enter(object sender, EventArgs e) { gcTextBox1.SelectionStart = 0; gcTextBox1.SelectionLength = 3; }
Enter イベント内でのSelectionStartとSelectionLengthの各プロパティを使ってテキスト選択した場合は、これらのプロパティの設定がHighlightText プロパティの設定よりも優先されます。 |
ShowOverflowTip プロパティを使用して、Text プロパティに割り当てられた文字列がコントロールの幅に収まりきらないときに、オーバーフローチップにすべての文字列を表示するかどうかを設定します。ShowOverflowTip プロパティをTrueに設定すると、コントロールの上にマウスカーソルが置かれたときにオーバーフローチップを表示します。Falseに設定するとオーバーフローチップは表示されません。
(図) オーバーフローチップを表示したテキストコントロール
Text プロパティに割り当てられた文字列がコントロールの幅に収まりきらないときに、すべての文字が表示されていないことを示す省略文字を表示することができます。省略文字を表示の有無やその表示位置は、Ellipsis プロパティで設定することができます。
Ellipsisの値 | 説明 |
---|---|
None | 省略文字を表示しません。 |
EllipsisEnd | コントロールの右側に省略文字を表示します。 |
EllipsisPath | コントロールの中央に省略文字を表示します。 |
Multiline プロパティをTrueに設定して複数行表示した場合、省略文字はコントロールに表示されている最終行に表示されます。
省略文字は、既定値では3点リーダー(…)で表示されます。任意の文字に表示を変更する場合は、EllipsisString プロパティを使用します。
PlaceHolderプロパティを使用することで、テキストボックスなどの入力エリア内にラベルを表示できる「フローティングラベル」を設定できます。コントロールが未入力の場合、このラベルはプレースホルダーとして機能します。また、テキスト入力に応じてラベルは縮小され、コントロール内の上部に移動します。
AlternateTextプロパティが設定されている場合には、コントロールが未入力であってもフローティングラベルは上部に表示されます。 |