(.Net)小数点第一位まで入力可という入力チェック
DataGridViewで、ある列は小数点第一位までの入力を許可させ、それ以外の値は認めないという要件を満たす方法です。

ちょっと悩んだんですが、まずfloatにパースできるかどうか判断します。
floatにパースできるようなら、10を掛け、それがintにパースできるかどうか判断します。
パースできないなら、小数点第二位以上の値が入っていることになるので、セルを移動させません。
というのが、以下のコードになります。(C#)


// 不正な場合、入力フォーカスを移動させない(小数点第一位まで可)
float f;
int i;
e.Cancel = (!float.TryParse(val, out f) || !int.TryParse((f * 10).ToString(), out i));


もっといい方法があるのかもしれませんが、これくらいしかスマートなのは思いつきませんでした。
[PR]
by jehoshaphat | 2014-01-13 00:56 | .Net開発 | Trackback | Comments(0)
トラックバックURL : http://jehupc.exblog.jp/tb/21558377
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。


<< (C#)ハンドルされない例外を... WindowsUpdateに失... >>