DateTimePicker (Winforms) を使用して日付と時刻の両方を (ドロップダウンで) 選択することは可能ですか? 選択した値のカスタム表示をどのように変更しますか? また、ユーザーが日付/時刻を手動で入力できるようにすることは可能ですか?
7 に答える
[形式] を [カスタム] に設定し、形式を指定します。
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MM/dd/yyyy hh:mm:ss";
またはどのようにレイアウトしたいですか。その後、日付/時刻を直接入力できます。MMM を使用する場合は、自分でコードを記述しない限り、入力には月の数値を使用する必要があります (例: 5 月に 5 件の結果)
一緒に日付と時刻のピッカーについては知りません。私にはカスタム コントロールのように聞こえます。
ジョブには 2 つの DateTimePicker を使用することをお勧めします。2 番目の DateTimePicker を次のようにフォーマットします。
timePortionDateTimePicker.Format = DateTimePickerFormat.Time;
timePortionDateTimePicker.ShowUpDown = true;
キャプチャすると、2 つは次のようになります。
これらの両方のコントロールから DateTime を取得するには、次のコードを使用します
DateTime myDate = datePortionDateTimePicker.Value.Date +
timePortionDateTimePicker.Value.TimeOfDay;
これらの両方のコントロールに DateTime を割り当てるには、次のコードを使用します
datePortionDateTimePicker.Value = myDate.Date;
timePortionDateTimePicker.Value = myDate.TimeOfDay;
残念ながら、これはフレームワーク内の多くの誤称の 1 つであるか、せいぜい SRP の違反です。
時刻に DateTimePicker を使用するには、Format プロパティを Time または Custom に設定します (CustomFormat プロパティを使用して時刻の形式を制御する場合は、Custom を使用します)。次に、ShowUpDown プロパティを true に設定します。
ユーザーは手動で日付と時刻を一緒に設定できますが、GUI を使用して両方を設定することはできません。
DateTime ピッカーは、日付と時刻の両方を選択するために使用できるため、「日付と時刻のピッカー」と呼ばれています。" Format " プロパティを " Custom " に設定し、さまざまな形式指定子の組み合わせを設定して、" Custom Format " プロパティでさまざまな形式で日付/時刻を表す/選択することができます。ただし、日付を変更する場合は、ポップアップ カレンダーを使用できますが、時間の選択の場合は (同じコントロールで上下キーを使用して値を変更する必要があります。
たとえば、カスタム フォーマット " dddddd, MMMM dd, yyyy hh:mm:ss tt " は次のような結果を返します: " Thursday, August 20, 2009 02:55:23 PM ".
必要に応じて、フォーマット指定子のさまざまな組み合わせを試すことができます。たとえば、MMMMは " August "を返し、 MMは " Aug "を返します。
時刻を表示させることができます。そのため、目的を達成するには、おそらく 2 つのコントロール (1 つの日付、1 つの時間) が必要になるでしょう。
残念ながら、DateTimePicker コントロールにはこれらのことを行う機能がありません。これは非常に基本的な (そしてイライラする!) コントロールです。あなたの最善の選択肢は、あなたが望むことをするサードパーティのコントロールを見つけることかもしれません.
日付と時刻を手動で入力するオプションについては、これを実現するために TextBox/DateTimePicker の組み合わせでカスタム コンポーネントを作成できます。サード パーティ製のコントロールがオプションでない場合は、かなりうまく機能する可能性があります。