web-dev-qa-db-ja.com

DateTimePicker:日付と時刻の両方を選択します

DateTimePicker(Winforms)を使用して(ドロップダウンで)日付と時刻の両方を選択することは可能ですか?選択した値のカスタム表示をどのように変更しますか?また、ユーザーが手動で日付/時刻を入力できるようにすることは可能ですか?

136
Grzenio

[形式]を[カスタム]に設定してから、形式を指定します。

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MM/dd/yyyy hh:mm:ss";  

またはしかし、あなたはそれをレイアウトしたい。次に、日付/時刻を直接入力できます。 MMMを使用する場合、入力用に月の数値を使用する必要があります(そのためのコードを自分で作成する場合を除きます(たとえば、5月に5つの結果)

一緒に日付と時刻のピッカーについて知らない。私にはカスタムコントロールのように聞こえます。

178
itsmatt

ジョブに2つのDateTimePickerを使用するのが最適です。1つは日付セクションのデフォルトで、2つ目のDateTimePickerは時間部分に使用します。 2番目のDateTimePickerを次のようにフォーマットします。

      timePortionDateTimePicker.Format = DateTimePickerFormat.Time;
      timePortionDateTimePicker.ShowUpDown = true;

あなたがそれらをキャプチャした後、2つはこのようになります

Two Date Time Pickers

これらの両方のコントロールからDateTimeを取得するには、次のコードを使用します

DateTime myDate = datePortionDateTimePicker.Value.Date + 
                    timePortionDateTimePicker.Value.TimeOfDay; 

DateTimeをこれらの両方のコントロールに割り当てるには、次のコードを使用します

datePortionDateTimePicker.Value  = myDate.Date;  
timePortionDateTimePicker.Value  = myDate.TimeOfDay; 
55
Vectoria

残念ながら、これはフレームワークの多くの誤った名称の1つであり、せいぜいSRPの違反です。

DateTimePickerを時刻に使用するには、FormatプロパティをTimeまたはCustomに設定します(CustomFormatプロパティを使用して時刻の形式を制御する場合は、Customを使用します)。次に、ShowUpDownプロパティをtrueに設定します。

ユーザーは日付と時刻を手動で一緒に設定できますが、GUIを使用して両方を設定することはできません。

45
Nescio

DateTime Pickerを使用して日付と時刻の両方を選択できるため、「Date and Time Picker」と呼ばれます。 「Format」プロパティを「Custom」に設定し、異なる形式指定子の組み合わせを設定して、「カスタム形式 "プロパティ。ただし、日付を変更する場合は、ポップアップカレンダーを使用できますが、時間選択の場合(同じコントロールでは、値を変更するために上下キーを使用する必要があります)。

たとえば、カスタム形式「ddddd、MMMM dd、yyyy hh:mm:ss tt」では、次のような結果が得られます。「Thursday、August 20、2009 02:55:23 PM "。

必要に応じて、フォーマット指定子のさまざまな組み合わせを試すことができます。たとえば、MMMMは「August」を返しますが、MMは"Aug"

23
Danish

Visual StudioでPropertiesdateTimePickerに移動し、FormatCustomに設定します。 CustomFormatの下にフォーマットを入力します。私の場合、MMMMdd, yyyy | hh:mmを使用しました

enter image description here
dateTimePickerProperties

12

time を表示させることができます。それから、おそらくあなたはあなたが望むものを達成するために2つのコントロール(1日、1回)を持っている必要があります。

1
Craig

DateTimePickerコントロールにはこれらの機能はありません。それは非常に基本的な(そしてイライラする!)コントロールです。あなたの最善の選択肢は、あなたが望むことをするサードパーティのコントロールを見つけることかもしれません。

日付と時刻を手動で入力するオプションについては、TextBox/DateTimePickerの組み合わせを使用してカスタムコンポーネントを作成し、これを実現できます。サードパーティのコントロールがオプションではない場合、それは十分に機能する可能性があります。

1