日、月、年の 3 つのドロップダウン リストを含むユーザー コントロールがあります。デートピッカーのようなものです。専用フィールドあり
private bool _isValidDate = false;
ドロップダウンリストの最初の項目は「日」、「月」、「年」です。SelectedIndexChanged イベントで、選択したすべてのインデックスが 0 より大きいかどうかを確認し、それが true の場合は、次のようなドロップダウン リストの値を持つ新しい DateTime オブジェクトを作成しようとします。
try
{
DateTime date=new DateTime(int.Parse(ddlYear.SelectedItem),
ddlMonth.SelectedIndex,
ddlDay.SelectedIndex);
_isValidDate=true;
}
catch {_isValidDate=false;}
送信前にこのコントロールを使用するフォームで、IsValidDate プロパティをチェックし、false の場合はユーザーに警告します。問題は、最初に正しい日付を設定してボタンを押すことです。IsValidDate プロパティが true であるため、警告は表示されませんが、2 回目にクリックすると、IsValidDate プロパティが false に戻り、警告が表示されますが、日付は有効です。ページが読み込まれるたびに、コントロールの _isValiddate フィールドがデフォルト値の false に戻されるためです。どうすればこの問題を処理できますか?