Picturebox 问题并尝试更新图像

Issue with Picturebox and trying to update images

我正在尝试更新计时器图片框中的图像。老实说,我在图片框方面没有太多经验,而且自从我完成任何 C# 工作以来已经有大约 5 年了。我试图在 google 和此处进行搜索,但似乎找不到我认为是我需要的答案:/

本质上,这就是我想要做的。表格花费的时间以秒为单位(比如 5 秒), 单击按钮时,将打开一个新表单。这个新表单上有一个图片框,可以显示目录中的随机照片。我能够让图片框显示随机照片,但是当我尝试在不重新打开表单的情况下刷新它时,这就是我遇到问题的地方。

我有一个变量 (timeVar) 设置为以秒为单位的输入时间,还有一个在后台的计时器,每次计时器滴答时,它都会通过减去 1 来更新 timerVar。这就是我必须设置的图片每次迭代的图片框。有一个外循环循环遍历我的列表 (dirList),直到它命中列表中的每个项目。

    while(timerVar > 0)
{
     pictureTimer.Start();
     imagePathPic = imagePath + dirList[ind];
     sessionPicture.ImageLocation = @imagePathPic;
     sessionPicture.Refresh();
}
    pictureTimer.Stop();
    timeVar = 5;

dirList 是给定目录中所有图像的列表,imagePath 是包含目录的字符串。我的 list/string 的功能以及外部循环都已成功测试,但是当我在上面的循环中应用图片框时,它不会执行任何操作,直到它获得最后一张图片然后显示。我缺少什么才能在表单上显示每张图片?如果您需要更多信息,请告诉我。

谢谢!

对我来说,它可以从文件加载图像。 Image.FromFile()System.Drawing 命名空间下。我不必添加任何 Refresh() 方法。您可以尝试在您的用户表单 this.Refresh() 上调用 Refresh,或者直接调用 Refresh().

public partial class Form1 : Form
{
    Timer _timer = new Timer();
    string[] _images;
    Random _random = new Random();
    string _imagesFolder = @"C:\Users\Me\Desktop\Picures\";
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        _timer.Tick += new EventHandler(timer_Tick);
        _timer.Interval = 2000;
        _images = Directory.GetFiles(_imagesFolder);
    }
    private void button1_Click(object sender, EventArgs e)
    {
        _timer.Enabled = !_timer.Enabled;
    }

    private void timer_Tick(object sender, EventArgs e)
    {
        var index = _random.Next(0, _images.Length);
        var imagePath = Path.Combine(_imagesFolder, _images[index]);
        pictureBox1.Image = Image.FromFile(imagePath);
    }
}

这是模型: