MESCIUS InputMan for WPF 3.0J
書式を設定する

このトピックでは、数値コントロールの主要機能である入力フィールドの書式設定とフィールドの活用方法について解説します。

概要

数値コントロールに書式には、入力用と表示用の2つがあり、それぞれ入力フィールドと表示フィールドを使って書式を設定します。

入力フィールドを設定するには、NumberFieldSet オブジェクトの各プロパティを使用します。一般的に数値の整数値、小数点、小数値は配置の順番が決まっているため、NumberFieldSet オブジェクトでは必要なフィールドオブジェクトと、それらを参照するためのプロパティがあらかじめ定義されており、ユーザーがフィールドオブジェクトを個別に追加または削除することはできません。

一方、表示フィールドを設定するには、NumberDisplayFieldSet プロパティが参照する NumberDisplayFieldCollection を使用します。NumberDisplayFieldCollection は、コントロール内の各フィールドを表す NumberDisplayField のコレクションを保持するクラスです。

数値コントロールの書式を設定するには、それぞれのコレクションの Add メソッドもしくは AddRange メソッドを使用して直接フィールドオブジェクトを追加する方法と、AddRange メソッドのオーバーライドの1つを使用して、キーワード文字列によりフィールドを自動生成する方法があります。それぞれの方法による書式の設定方法については、以下のトピックを参照してください。

フィールドの操作方法

フィールドコレクション内の特定のフィールドにアクセスする場合、NumberFieldSet オブジェクトの各プロパティを参照するか、あるいは DisplayFields プロパティの引数としてそのフィールドのインデックス番号を指定します。

以下のサンプルコードは、インデックスを使ってフィールドを取得する例です。ここでは数値コントロールの3番目のフィールド(NumberSignDisplayField フィールド)を取得します。インデックスは0から開始することに注意してください。

Imports GrapeCity.Windows.InputMan.Fields

' 3番目のフィールド(NumberSignDisplayField フィールド)を取得します。
Dim MyField As NumberSignDisplayField = GcNumber1.DisplayFieldSet.DisplayFields(2)
using GrapeCity.Windows.InputMan.Fields;

// 3番目のフィールド(NumberSignDisplayField フィールド)を取得します。
var MyField = (NumberSignDisplayField)GcNumber1.DisplayFieldSet.DisplayFields[2];
<!-- VB、C#とも、以下のコードをページ内に記述してください -->
<im:GcNumber Name="GcNumber1" >
  <im:GcNumber.DisplayFieldSet>
    <im:NumberDisplayFieldSet>
      <im:NumberSignDisplayField NegativePattern="▲ " />
      <im:NumberIntegerPartDisplayField>
        <im:NumberIntegerPartDisplayField.GroupSizes>
          <im:IntegerItem Value="3" />
          <im:IntegerItem Value="3" />
          <im:IntegerItem Value="0" />
        </im:NumberIntegerPartDisplayField.GroupSizes>
      </im:NumberIntegerPartDisplayField>
      <im:NumberSignDisplayField NegativePattern="円" PositivePattern="円" />
    </im:NumberDisplayFieldSet>
  </im:GcNumber.DisplayFieldSet>
</im:GcNumber>
イベントの利用

フィールドには、フィールド間のキャレットの移動によって発生する2つのイベントが用意されています。

これらのイベントを使えば、フィールド毎に入力された値をチェックすることや、その値に応じた独自処理の実装など、フィールドを使った細やかな処理の実装を可能になります。

これらのイベントは、EnterEvent フィールドおよび LeaveEvent フィールドを使用して識別することができます。これらのフィールドを使うことでも、ユーザーは同様の処理を実装することが可能です。

フィールドクラスのイベントの場合、フィールド毎にイベントを実装する必要があることから、動的なフィールド操作や書式の仕様変更などに対しての処理が煩雑になる可能性があるため、フィールドクラスのイベントよりも EnterEvent フィールドおよび LeaveEvent フィールドを使うことが推奨されます。

 

 


© MESCIUS inc. All rights reserved.