【发布时间】:2018-10-31 07:29:03
【问题描述】:
我在 WinForm 中使用了两个 DatePicker 并尝试做一件简单的事情。每当我尝试选择日期时,说 Start Date,然后 End Date 应该减少一年。但有一个条件。例如,如果 开始日期
是 '10-12-2018',那么 结束日期 应该是 '10-12-2017'。同样,如果 开始日期 为 '10-12-2017',则 结束日期 将为 '10-12-2016'。同样,如果 开始日期 是“10-14-2017”,那么 结束日期 将是“10-12-2016”。因为改变的是日子,而不是年份。
我尝试过反之亦然,这意味着通过 DatePicker 值更改事件增加年份,并且与 以下:
public frmDetails()
{
InitializeComponent();
dtPickerEnd.Value = dtPickerEnd.Value.AddYears(1); //By default adding one year for end date
}
更改开始日期时:
private void dtPickerStart_ValueChanged(object sender, EventArgs e)
{
if (dtPickerStart.Value.Year == dtPickerEnd.Value.Year) //If year is same, then increase year by one
{
dtPickerEnd.Value = dtPickerEnd.Value.AddYears(1);
}
}
当我增加开始日期时它起作用,但当我做相反的事情时不起作用。就像如果 Start Date 是“10-12-2018”,那么 End Date 应该是“10-12-2019”。同样,如果 开始日期 为 '10-12-2017',则 结束日期 为 '10-12-2018'。但现在我愿意坚持减少的年份。不幸的是,我没有得到预期的结果:
private void dtPickerStart_ValueChanged(object sender, EventArgs e)
{
if (dtPickerStart.Value.Year == dtPickerEnd.Value.Year) //If year is same, then increase year by one
{
dtPickerEnd.Value = dtPickerEnd.Value.AddYears(-1);
}
}
【问题讨论】:
标签: c# winforms datepicker