日期/时间选择器无法正确循环

本文关键字:循环 时间 选择器 日期 | 更新日期: 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;
}