DOBON.NETプログラミング掲示板過去ログ
日付の入力制限
題名: 日付の入力制限
著者: うさ
日時: 2005/08/12 14:12:32
ID: 12189
この記事の返信元:
(なし)
この記事への返信:
[12190]
Re[1]: 日付の入力制限
じゃんぬねっと
2005/08/12 14:18:16
ツリーを表示
環境/言語:[XP、C#]
分類:[.NET]
テキストボックスに、2005/08/12の形の日付を入力制限したいのですが、どうすればいいでしょうか?
例えば、1900年より前は不可にする、などです。
題名: Re[1]: 日付の入力制限
著者: じゃんぬねっと
URL:
http://jeanne.wankuma.com/
日時: 2005/08/12 14:18:16
ID: 12190
この記事の返信元:
[12189]
日付の入力制限
うさ
2005/08/12 14:12:32
この記事への返信:
[12210]
Re[2]: 日付の入力制限
うさ
2005/08/15 11:22:56
ツリーを表示
こんにちは、じゃんぬ です。
■No12189に返信(うささんの記事)
> テキストボックスに、2005/08/12の形の日付を入力制限したいのですが、どうすればいいでしょうか?
> 例えば、1900年より前は不可にする、などです。
その制限するタイミングは?
通常は、Validating イベントですが、それで良いですか?
まずは、日付かどうかを判断し、日付であれば、DateTime.Parse([その日付])
あとは、1900/01/01 より前かどうかを判断するだけですよね。
題名: Re[2]: 日付の入力制限
著者: うさ
日時: 2005/08/15 11:22:56
ID: 12210
この記事の返信元:
[12190]
Re[1]: 日付の入力制限
じゃんぬねっと
2005/08/12 14:18:16
この記事への返信:
[12213]
Re[3]: 日付の入力制限
じゃんぬねっと
2005/08/15 12:31:33
ツリーを表示
回答ありがとうございます。
ですが、まだよく分からないので、下に実際に作った(ほとんど作ってもらったものですが)ソースを貼り付けました。
どのようにしたらいいのでしょうか?
誕生日を入力するテキストボックス(textBox_Birth.Text)に生年月日を入力すると、星座のテキストボックス(textBox_Star.Text)に自動的に星座が表示される、という形のものを作り、年の部分は1900年から今年までと制限したいのですが、「 /08/15 」や「 1/08/15 」が入力OKになってしまいます。
private bool check_DateTime( string birth )
{
try
{
DateTime workDateTime;
workDateTime = DateTime.Parse( birth );
// 1900年未満は変換失敗を戻り値に返す
if( workDateTime.Year < 1900 )
{
return false;
}
// 現在以上は変換失敗を戻り値に返す
else if( DateTime.Now.Year < workDateTime.Year )
{
return false;
}
return true;
}
catch
{
return false;
}
}
private void textBox_Birth_TextChanged(object sender, System.EventArgs e)
{
try
{
// 入力された誕生日が日付型であるか確認
if( check_DateTime( textBox_Birth.Text ))
{
textBox_Star.Text = GetStar( DateTime.Parse( textBox_Birth.Text ));
}
else
{
textBox_Star.Text = "";
}
}
catch(Exception er)
{
MessageBox.Show(er.Message);
}
}
private void textBox_Birth_Leave(object sender, System.EventArgs e)
{
try
{
// 入力された誕生日が日付型であるか確認
if( check_DateTime( textBox_Birth.Text ))
{
textBox_Star.Text = GetStar( DateTime.Parse( textBox_Birth.Text ));
}
else
{
textBox_Birth.Text = DateTime.Today.ToString("d");
}
}
catch(Exception er)
{
MessageBox.Show(er.Message);
}
}
題名: Re[3]: 日付の入力制限
著者: じゃんぬねっと
URL:
http://jeanne.wankuma.com/
日時: 2005/08/15 12:31:33
ID: 12213
この記事の返信元:
[12210]
Re[2]: 日付の入力制限
うさ
2005/08/15 11:22:56
この記事への返信:
(なし)
ツリーを表示
こんにちは、じゃんぬ です。
■No12210に返信(うささんの記事)
> 年の部分は1900年から今年までと制限したいのですが、「 /08/15 」や
> 「 1/08/15 」が入力OKになってしまいます。
Parse した後、どこが「年」になっているか確認していますか?
実際、どんな日付のインスタンスになっているか確認していますか?
これらは、「入力OKになってしまいます」の原因を掴むために、必要なプロセスです。
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
テキストボックスに、2005/08/12の形の日付を入力制限したいのですが、どうすればいいでしょうか?
例えば、1900年より前は不可にする、などです。