|
分類:[C# (Windows)]
いつもお世話になっております。 かるぼです。
MaskedTextBoxを調査しています。
マスクの設定で数値(5桁)を指定するとマスクに99999が入り数値しか入力できなくなるのですが、なんとおせっかいなことに全角でも受け取ってしまいます。 マスク設定時にValidatingTypeを使用するにチェックをつけているのです、Int32でチェックがかかっているかと思いきや、Exceptionが出るでもなく、入力を受け付けています。
AsciiOnlyプロパティというのがあったので、trueに設定してみましたが、やはり、全角も受け取ります。
ImeModeプロパティをDisableにすると直接全角入力はできなくなりましたが、コピー&ペーストは阻止できませんでした。
そこで疑問ですが、
・MaskedTextBoxの標準機能だけで(つまりノンコーディングまたはMaskedTextBox利用にあたり想定されたコーディングの範囲で)半角のみ受け付けることができるのでしょうか?(カルチャ設定をちこっといじってみてもダメでした)
・マスク設定時のValidatingTypeってMSDN見てみると「ユーザーの入力が有効な値を表すかどうかを検証できます。」とありますが、これはTypeValidationCompletedイベントのイベントハンドらに自分で検証コードか検証結果を処理するコードを書かなきゃいけないということでしょうか?
具体的な業務は想定していないので、MaskedTextBoxで力技なく実現できるか否かがポイントです。
# AsciiOnlyプロパティがあんなら、HankakuOnlyプロパティも欲しいぞぉ!! # てか、AsciiOnlyなら余計なおせっかいせずに半角だけのAsciiだけを通すか半角に変換するかしてほしいぞぉ!!
|