C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: MaskedTextBoxでデータ検証


(過去ログ 118 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■69467 / inTopicNo.1)  MaskedTextBoxでデータ検証
  
□投稿者/ カイト (1回)-(2013/12/27(Fri) 23:03:17)

分類:[C#] 

マスクドテキストボックスに入力された値が時間・分(HHMM形式)か検証したいと思いますが、可能でしょうか?
入力文字は、

「1259」、「2348」、「0101」⇒OK
「1260」、「2513」、「0078」⇒NG

http://msdn.microsoft.com/ja-jp/library/system.windows.forms.maskedtextbox.typevalidationcompleted(v=vs.110).aspx

上記URLにより、MaskedTextBox.TypeValidationCompleted イベントを使えばできそうな感じがしています。

フォームロード時
maskedTextBox1.Mask = "0000";
maskedTextBox1.ValidatingType = typeof(System.DateTime);

TypeValidationCompletedイベント発生時には下記のようなことがおこります。
MaskedTextBox コントロールがフォーカスを失ったとき、イベント発生。
DateTime.Parseメソッド呼び出し。
Parseできない場合は、Falseが返る。

Parseで上手く「HHMM」のところを表現できないかなと思っています。
DateTime.TryParseExactができればいいのですが、Parseでもなんとかならないでしょうか?

もしくは、あきらめてValidatingイベントで、その中でDateTime.TryPaseExactメソッドを使って「HHMM」を表現しないとダメでしょうか?

宜しくお願い致します。
引用返信 編集キー/
■69468 / inTopicNo.2)  Re[1]: MaskedTextBoxでデータ検証
□投稿者/ Hongliang (150回)-(2013/12/28(Sat) 08:12:26)
直接DateTimeで検証するのではなく、Parseメソッドを提供する独自型を定義してそれをValidatetingTypeにすればいいのではないでしょうか。
引用返信 編集キー/
■69469 / inTopicNo.3)  Re[2]: MaskedTextBoxでデータ検証
□投稿者/ カイト (2回)-(2013/12/28(Sat) 08:50:15)
Hongliang さん

なるほど、独自型を定義するという考えは思いつきませんでした。ありがとうございました。

No69468 (Hongliang さん) に返信
> 直接DateTimeで検証するのではなく、Parseメソッドを提供する独自型を定義してそれをValidatetingTypeにすればいいのではないでしょうか。


引用返信 編集キー/
■69470 / inTopicNo.4)  Re[3]: MaskedTextBoxでデータ検証
□投稿者/ カイト (3回)-(2013/12/28(Sat) 08:50:22)
No69469 (カイト さん) に返信
> Hongliang さん
>
> なるほど、独自型を定義するという考えは思いつきませんでした。ありがとうございました。
>
> ■No69468 (Hongliang さん) に返信
>>直接DateTimeで検証するのではなく、Parseメソッドを提供する独自型を定義してそれをValidatetingTypeにすればいいのではないでしょうか。
>
>
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -