中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

Visual Studio 2005 新クラス紹介 MaskedTextBox ValidatingTypeを使いこなす

この文書の最新版は
http://naka.wankuma.com/site/column/dotnet/00022.htm


この文書はVisual Studio 2005 Beta2(.NET2.0)をベースに記述されています。

VisualStudio 2005にはAccessなどに搭載されているマスクつきテキストボックスの機能が搭載されています。

概論は.NET Visual Studio 2005 新クラス紹介 MaskedTextBox Overview

定型入力でValidatingTypeを使用するをチェックした場合に、FormDesigner.csのプロパティには下記のようなソースが出力されます。

this.maskedTextBox1.Mask = "0000年90月90日";
this.maskedTextBox1.ValidatingType = typeof(System.DateTime);

Maskの方には伝統的な0や9などを利用した特殊なフォーマット指定を行います。
独自のキーなどを利用する場合には0000-000000-0000などを指定して利用することになるでしょう。

特徴はValidatingTypeでDateTimeの型自体を渡しています。

MaskedTextBoxは内部で入力文字の検査を行ってくれます。

ValidatingTypeに値が設定されている場合には、ValidatingTypeに指定した型のParseメソッドを呼び出します。(この場合だとDateTime.Parse())その結果をもってTypeValidationCompletedイベントを呼び出します。

#ここでなぜかParseという名前のメソッドを呼び出すという実装をしてくれているため、なかなか独自の型を設定したりするときには注意が必要です。また、DateTimeにParseExactを使う用法が利用できないのでさらに注意が必要。(和暦は無理か)

object a = this.maskedTextBox1.ValidateText();

設定した型で値を取得する場合には上記の構文のValidateTextメソッドを利用します。

Validateが通らなかった場合にはnullが帰ってきます。

投稿日時 : 2005年8月15日 22:13

コメントを追加

No comments posted yet.
タイトル
名前
URL
コメント