時刻コントロールの書式は、
Formatプロパティが参照する
TimeFormatオブジェクトと
DisplayFormatプロパティが参照する
TimeDisplayFormatオブジェクトを使って設定します。これらのオブジェクトのPatternプロパティにキーワードを設定することで、書式を作成します。
1.リテラル文字列
時刻コントロールには、キーワード以外の文字列をリテラル文字列として表示させることができます。ただし、リテラル文字列のみをFormatプロパティまたはDisplayFormatプロパティに設定することはできません。また、キーワードをリテラル文字として表示させるには、キーワードの前に円記号(\、Chr(92))を付けます。円記号を表示させる場合は \\ とします。
なお、
ShowLiteralsプロパティを使えば、入力中にリテラル文字列を表示するかどうかを指定できます。
2. フィールド
時刻コントロールのフィールドには、次の4種類があります。どのフィールドが表示されるかは、書式の定義に依存します。なお、リテラル文字列の領域は、フィールドとは解釈されません。
3. 時刻の基点
時刻コントロールでは、時刻を表示するときの基点を
Hour12Modeプロパティと
MidnightAs24プロパティで設定することができます。
Hour12ModeプロパティをHour12Mode.Hour12As0に設定すると、表示範囲を 「00:00:00 〜 11:59:59」にし、Hour12Mode.Hour0As12にすると、表示範囲を 「01:00:00 〜 12:59:59」 にします。
また、MidnightAs24プロパティをTrueに設定すると、真夜中(深夜0時)を「24時」として表示し、Falseにすると、真夜中(深夜0時)を「0時」として表示することができます。
時刻コントロールの入力書式は、
Formatプロパティが参照する
TimeFormatオブジェクトを使って設定します。このオブジェクトの
Patternプロパティにキーワードとリテラル文字列を設定することで、入力書式を作成します。 Patternプロパティでは、以下のキーワードが使えます。
時刻に関するキーワード
キーワード |
説明 |
t |
12時間制で時刻を表示するときに午前(AMDesignatorプロパティで設定)または午後(PMDesignatorプロパティで設定)を表す文字列の最初の1文字を表示 |
tt |
12時間制で時刻を表示するときに午前(AMDesignatorプロパティで設定)または午後(PMDesignatorプロパティで設定)を表す文字列を表示 |
hh |
時を12時間制で表示(先頭に0を付ける) |
HH |
時を24時間制で表示(先頭に0を付ける) |
mm |
分を表示(先頭に0を付ける) |
ss |
秒を表示(先頭に0を付ける) |
\(Chr(92)) |
キーワードをリテラル文字として表示 |
午前または午後を表す文字列をキーボードから入力するには、以下のキーを押下します。
区分 |
午前 |
午後 |
数値入力 |
1 |
2 |
文字入力 |
a |
p |
自由書式入力
TimeFormatオブジェクトのPatternプロパティに空の文字列(""またはString.Empty)を設定すると、自由書式入力が可能になります。自由書式入力では、時刻に変換可能なあらゆる値を受けつけますが、無効な文字が入力されても
InvalidInputクライアントイベントは発生しません。
自由書式入力に設定した場合は、次の各プロパティが無効になります。
|
自由書式入力で時刻に変換可能な値は、JavaScriptにおけるDateオブジェクトのparse メソッドが時刻と認識する文字列に限られます。 |
時刻コントロールの表示書式は、
DisplayFormatプロパティが参照する
TimeDisplayFormatオブジェクトを使って設定します。このオブジェクトの
Patternプロパティにキーワードとリテラル文字列を設定することで、表示書式を作成します。Patternプロパティでは、以下のキーワードが使えます。
時刻に関するキーワード
キーワード |
説明 |
t |
12時間制で時刻を表示するときに午前(AMDesignatorプロパティで設定)または午後(PMDesignatorプロパティで設定)を表す文字列の最初の1文字を表示 |
tt |
12時間制で時刻を表示するときに午前(AMDesignatorプロパティで設定)または午後(PMDesignatorプロパティで設定)を表す文字列を表示 |
h |
時を12時間制で表示(先頭に0を付けない) |
hh |
時を12時間制で表示(先頭に0を付ける) |
H |
時を24時間制で表示(先頭に0を付けない) |
HH |
時を24時間制で表示(先頭に0を付ける) |
m |
分を表示(先頭に0を付けない) |
mm |
分を表示(先頭に0を付ける) |
s |
秒を表示(先頭に0を付けない) |
ss |
秒を表示(先頭に0を付ける) |
\(Chr(92)) |
キーワードをリテラル文字として表示 |
次のサンプルコードは、
Formatプロパティと
DisplayFormatプロパティを使って時刻を入力するための書式を設定する方法を示します。
次のサンプルコードは、上記と同じ設定を
TimeFormatオブジェクトと
TimeDisplayFormatオブジェクトを明示的に生成することで行います。