MESCIUS InputMan for WPF 3.0J > InputMan for WPF の使い方 > 日付コントロール > 書式を設定する |
このトピックでは、日付コントロールの主要機能である入力フィールドの書式設定とフィールドの活用方法について解説します。
日付コントロールに書式には、入力用と表示用の2つがあり、それぞれ入力フィールドと表示フィールドを使って書式を設定します。
入力フィールドを設定するには、DateFieldSet.Fields プロパティが参照する DateFieldCollection を使用します。DateFieldCollection は、コントロール内の各フィールドを表す DateField のコレクションを保持するクラスです。
一方、表示フィールドを設定するには、DateDisplayFieldSet.DisplayFields プロパティが参照する DateDisplayFieldCollection を使用します。DateDisplayFieldCollection は、コントロール内の各フィールドを表す DateDisplayField のコレクションを保持するクラスです。
日付コントロールの書式を設定するには、それぞれのコレクションの Add メソッドもしくは AddRange メソッドを使用して直接フィールドオブジェクトを追加する方法と、AddRange メソッドのオーバーライドの1つを使用して、キーワード文字列によりフィールドを自動生成する方法があります。それぞれの方法による書式の設定方法については、以下のトピックを参照してください。
フィールドコレクション内の特定のフィールドにアクセスする場合、DateFieldSet.Fields プロパティあるいは DateDisplayFieldSet.DisplayFields プロパティの引数としてそのフィールドのインデックス番号を指定します。
以下のサンプルコードは、インデックスを使ってフィールドを取得する例です。ここでは日付コントロールの3番目のフィールド(DateMonthField フィールド)を取得します。インデックスは0から開始することに注意してください。
Imports GrapeCity.Windows.InputMan.Fields ' 3番目のフィールド(DateMonthField フィールド)を取得します。 Dim MyField As DateMonthField = GcDateTime1.FieldSet.Fields(2)
using GrapeCity.Windows.InputMan.Fields; // 3番目のフィールド(DateMonthField フィールド)を取得します。 DateMonthField myField = (DateMonthField)GcDateTime1.FieldSet.Fields[2];
<!-- VB、C#とも、以下のコードをページ内に記述してください --> <im:GcDateTime x:Name="GcDateTime1"> <im:GcDateTime.FieldSet> <im:DateFieldSet> <im:DateYearField /> <im:DateLiteralField Text="/" /> <im:DateMonthField /> <im:DateLiteralField Text="/" /> <im:DateDayField /> </im:DateFieldSet> </im:GcDateTime.FieldSet> </im:GcDateTime>
フィールドには、フィールド間のキャレットの移動によって発生する2つのイベントが用意されています。
これらのイベントを使えば、フィールド毎に入力された値をチェックすることや、その値に応じた独自処理の実装など、フィールドを使った細やかな処理の実装を可能になります。
これらのイベントは、EnterEvent フィールドおよび LeaveEvent フィールドを使用して識別することができます。これらのフィールドを使うことでも、ユーザーは同様の処理を実装することが可能です。 フィールドクラスのイベントの場合、フィールド毎にイベントを実装する必要があることから、動的なフィールド操作や書式の仕様変更などに対しての処理が煩雑になる可能性があるため、フィールドクラスのイベントよりも EnterEvent フィールドおよび LeaveEvent フィールドを使うことが推奨されます。 |