24 時間以上を許可する TimeSpan タイム ピッカー列を作成する方法が必要です。現在、DateTimePicker から派生した TimePicker を取得しましたが、24 を過ぎるとゼロに戻ります。そして、その動作を変更する方法が見つかりませんでした。
助けてください。
ありがとう!
24 時間以上を許可する TimeSpan タイム ピッカー列を作成する方法が必要です。現在、DateTimePicker から派生した TimePicker を取得しましたが、24 を過ぎるとゼロに戻ります。そして、その動作を変更する方法が見つかりませんでした。
助けてください。
ありがとう!
コメントで考えていたように、おそらくこれを処理する最も簡単な方法は、2 つのNumericUpDownコントロールを用意することです。1 つは日を表し、もう 1 つは時間を表します。
そこから、少し余分なロジックを追加する必要があります。これらのスピナーは「ロールオーバー」をネイティブにサポートしていないため、自分でコーディングする必要があります。これらをイベントに追加し、MSDN のドキュメントClick
を参照すると、イベントへのフックを検討していると思います。他に特に興味深いものはありません。
コードは次のようになります。
private void ctrlUpDownHour_Click(object sender, EventArgs e)
{
if(ctrlUpDownHour.Value >= 24)
{
ctrlUpDownDay.Value += 1;
ctrlUpDownHour.Value -= 24;
}
}
ctrlUpDownHour.Maximum
プロパティを 24に設定すると役立つ場合もあります。
EDIT:コメントで述べたように、おそらくあなたの状況を処理する最も簡単な方法は、単にuser controlを作成することです。
2 つのコントロールを持つ新しいユーザー コントロールを作成するだけNumericUpDown
です。プロジェクトに新しい項目を作成し、「ユーザー コントロール」項目をクリックすることから始めます。これでうまく開始できます。
NumericUpDown
その後、必要に応じてコントロールを視覚的に設計できます。それが処理された後、コード ビハインドに移動すると、次のようになります。
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
// anything else you want to do here
}
public TimeSpan GetSelectedTimeSpan()
{
return new TimeSpan((int)numericUpDown1.Value, (int)numericUpDown2.Value, 0, 0);
}
}
その後、このユーザー コントロールを他のフォームの他のコントロールと同じように配置できます。それから TimeSpan が必要な場合は、他のコントロールと同じようにコントロールをキャプチャしてuserControl1Instance.GetSelectedTimeSpan()
.
ブラモ、やった。