DateTimePickerコントロールには、ユーザー入力用の豊富なオプションがあります。マウスをクリックしてヘッダー(例:2010-2019)をクリックし、数十年前に戻ることができます。またはキーボード(カーソルの上下左右)を使用して、選択したフィールドの日/月/年の中で素早く上下します。
![Using the mouse to choose a date](https://i.stack.imgur.com/WuCxd.png)
![enter image description here](https://i.stack.imgur.com/mk30k.png)
いくつかの考え:あなたはDateTimePickerのを示し、最初の.Visible = False
を設定しない場合があります。あなたの好みの年のリストボックス(1940年から)を追加すると、ユーザーは長いリストから生年月日を選択し、dateTimePickerを使用して2番目のステップを実行することになります。
もちろん、フォームのロードイベントが発生する前に、コードで実行時にMinDate、MaxDate、およびValueを設定できます。または、ListBoxイベントを使用して、DateTimePickerコントロールを表示する前にデフォルト値を設定します。
次のコードは、1940-01-31で制御を開始し、ユーザー入力は1940-01-01と今日(現在)の間で有効です。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'//--- date of birth
DateTimePicker1.MinDate = "1940/01/01"
DateTimePicker1.MaxDate = Now
DateTimePicker1.Value = "1940/01/31"
'//--- date of admission
DateTimePicker2.MinDate = "1940/01/01"
DateTimePicker2.MaxDate = Now
DateTimePicker2.Value = Now
End Sub
![enter image description here](https://i.stack.imgur.com/gRVPx.png)
しかし、すべてのあなたのニーズとあなたが、例えばしたい期間によって異なりますMinDate = Now - 75 years、Maxdate = Now - 20 years
あなた自身で機能をプログラムするのか、DateTimePickerコントロールを使うのかを決める必要があります。
'datetimeinputは、あなたが選択する前の日付を表示したくないのですが、それはどのように動作するのでしょうか?前提条件は、' .Value'は常にMin Max範囲の有効な日付です。 – Plutonix
私はそれをテキストプロパティで設定したので、日付を表示しています...しかし、とにかく、私はまだ解決策を見つけていません。 – Emily13