スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: スポンサー広告

数値だけのTextBoxだってやれるはずだ(壱)。

数値入力オンリーのテキストボックスだって作れるんだぞ。

数値型プロパティとTextBox.Textプロパティとのバインド

数値入力オンリーにしなくたって方法はある。かな。
を書いた時は、TextCompositionManagerの存在を知らなかった。でも今は知っている。バイト長で制限した時の実装を応用して、そういうのもできる筈!という事で、数値専用のTextBoxってやつを実装してみた。実際に仕事では活用している。

○直接入力について
 これはTextCompositionManagerクラスのPreviewTextInputイベントでどうにかなる。
○日本語入力のON/OFFについて
 PreviewKeyDownイベントで、日本語入力をONにした状態のキーデータ(e.Key)はすべて「ImeProcess」になっているので、これに相当するときは以後の処理をキャンセルすることでどうにかなりそう。
○PreviewKeyDownイベントでフックできないアクションを各々実装する。
 ・貼り付け
  貼り付けられる文字列に数値が含まれてあれば、それを抽出する、あるいは数値(decimal)に変換できなければ、無視をする。これは運用次第かな。
 ・削除(Delete)
  キャレットの右の文字を削除する。選択されている文字列があれば、それをまるごと消す。
  Ctrl+Delの動きをどうしよう?
 ・BS(Backspace)
  キャレットの左の文字を削除する。選択されている文字列があれば、それをまるごと消す。
  Ctrl+BSの動きをどうしよう?

○主に用意する添付プロパティ
 ・数値入力のみにするかどうか:
  これがメイン。外せば元に戻るのがミソ。というか、WPFが持つ強みの一つ。コントロールを継承しないで済むってのが大きい。
 ・整数部の桁数、小数部の桁数
  データベース内のテーブルで小数点もちの値はほぼdecimal型に放り込む。その際、整数部と小数部の桁数は結構揉めるネタとなる。やれ単価の小数点は何桁までとか、何桁目は四捨五入するのか、切り捨てるのかとか。
 ・最大値と最小値:
  桁数だけでは制御できないところを決めるプロパティ。4桁だけど最大値は5000だよ、とか。
つづく。
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0


この記事へのコメント

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。