日期/时间选择器无法正确循环
本文关键字:循环 时间 选择器 日期 | 更新日期: 2023-09-27 18:16:13
想让图片幻灯片从一个特定的时间开始,然后在另一个特定的时间结束。
另外,如何设置DateTime选择器选择分钟/小时?
//Under start button
if (rbtnDateTime.Checked == true)
{
DateTime startDate = dateTimePicker1.Value.Date;
DateTime stopDate = dateTimePicker2.Value.Date;
//Given time interval in seconds
if (mtxtSlideShowInterval.Text != "")
{
int interval = Convert.ToInt16(mtxtSlideShowInterval.Text);
while ((startDate = startDate.AddSeconds(interval)) <= stopDate)
{
timerSlideShow.Enabled = true;
timerSlideShow.Start();
}
timerSlideShow.Stop();
timerSlideShow.Enabled = false;
}
}
//Under timer_tick event
//Infinite Loop
else
{
if (listBoxPicturesInAlbum.SelectedIndex ==listBoxPicturesInAlbum.Items.Count - 1)
{
listBoxPicturesInAlbum.SelectedIndex = 0;
}
else
{
listBoxPicturesInAlbum.SelectedIndex++;
}
}
我将摆脱你的while
循环,并采取几个步骤。
首先,您需要一个字段来标记当前索引:
int currentImageIndex = 0;
其次,您将设置您的timer.Interval
。
timer.Interval = int.Parse(mtxtSlideShowInterval.Text) * 1000;
第三,你的timer_tick
可以包括这样的东西:
if (DateTime.Now < dateTimePicker2.Value.Date)
{
listBoxPicturesInAlbum.SelectedIndex = currentImageIndex;
pictureBox.Image = Image.FromFile((string)listBoxPicturesInAlbum.SelectedValue);
currentImageIndex = (currentImageIndex + 1) % listBoxPicturesInAlbum.Items.Count;
}