Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

書式設定もできる数値コントロールを持ったWPFアプリケーションの作成

PowerTools InputMan for WPF 1.0JのGcNumberコントロールを使ったアプリケーションの作成

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/08/15 14:00
目次

基本的な機能

 数値コントロールとしての基本的な機能には、動作範囲を決定するMaxValueプロパティとMinValueプロパティがあります。値の増減はフィールド単位、値全体、あるいはキャレットが置かれている桁のいずれかに対して行うことができます。例えば、SpinModeプロパティをNumberSpinMode.Fieldに設定すればフィールド単位で、NumberSpinMode.Valueに設定すれば値全体に対して、NumberSpinMode.Digitsに設定すればキャレットが置かれている桁に対して、値の増減が行われます。増減幅は、次のようになっています。

値の増減幅
SpinMode 説明 プロパティ
NumberSpinMode.Field キャレットの位置に存在するフィールドに対して値の増減を行います 増減値は SpinIncrement プロパティで設定します。なお、リテラルフィールド上にキャレットがある場合、スピン機能は無効になります
NumberSpinMode.Value キャレットの位置に関わらず、値全体に対して値の増減を行います 増減値は SpinIncrementValue プロパティで設定します
NumberSpinMode.Digits キャレットの位置に存在する桁に対して値の増減を行います 増減値は SpinIncrement プロパティで設定します。なお、リテラルフィールド上にキャレットがある場合、スピン機能は無効になります

 SpinAllowWrapプロパティをTrueに設定すると、値が最大値に達した場合は最小値に、最小値に達した場合は最大値に、それぞれ自動的に値を変更します(デフォルト値はTrue)。

 入力された値を取得するには、TextプロパティかValueプロパティを使用します。Textプロパティは、コントロールに表示される文字列値を取得します。Valueプロパティは、リテラル文字列を除いたコントロール内の数値をDecimal型で取得します。設定入力値に書式を設定した場合、その入力値を取得する際に書式付きで取得するのであればTextプロパティを、書式なしで取得するのであればValueプロパティを使用します。これら以外にも、次の機能があります。

  • マイナス値の色と設定

     マイナス値が入力された際に表示する接頭辞/接尾辞文字列を指定できます。また、NegativeForegroundプロパティを使用して、マイナス値が入力された場合の文字色を設定できます。

  • プラス値/マイナス値の切り替え

     デフォルトでは[+]キー、および[-]キーは、それぞれ入力値をプラス値/マイナス値に切り替えるスイッチとして動作します。値がプラス値の時に[-]キーを押すとマイナス値に、値がマイナス値の時に[+]キーを押すとプラス値に、それぞれ切り替わります。

  • 値をNullにできるかどうかの設定

     AllowDeleteToNullプロパティを使うと、値がゼロの時にDeleteやBackSpaceキーを押下することで、値をNullにできるかどうかを制御できます。

  • 未入力時に表示する透かし表示テキスト

     WatermarkNullプロパティおよびWatermarkDisplayNullプロパティを使用すれば、コントロールが未入力の時(値がNullの場合)に代わりに表示する透かし表示テキストを文字列として設定できます。また、値がゼロの場合は、WatermarkZeroプロパティおよびWatermarkDispkayZeroプロパティを使用して、透かし表示テキストの設定が可能です。

  • 入力候補値の表示

     ShowRecommendedValueプロパティを使用すると、数値コントロールで値が未入力の時、入力候補となる値をグレー表示できます。

  • ハイライト表示

     HighlightTextプロパティを使用すると、フォーカスを受け取った時のテキストの選択状態を設定できます。

  • ドロップダウン電卓

     数値コントロールには、ドロップダウンで表示できるドロップダウン電卓が搭載されています。

  • 検証項目の指定

     数値コントロールでは、RangeValidator(入力値が有効範囲内かどうかの検証)を使って入力された値の検証を行うことができます。

 値が有効範囲を超えた場合の動作は、以下のいずれかから指定できます。

範囲を超えた場合の動作を指定するプロパティ
プロパティ 説明
ValueProcessAction.Keep 何もしません
ValueProcessAction.Clear 入力値をクリアします
ValueProcessAction.Restore 入力前の値を復元します
ValueProcessAction.AdjustToMinMax 有効範囲内に収まるよう入力値を調整します

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 瀬戸 遥(セト ハルカ)

    8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

バックナンバー

連載:ComponentZine(InputMan)

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5