我有一个应用程序,它有一个列表框和一个图片框。我需要的是当ListBox.IndexChanged事件被触发时,PictureBox图像需要更新或刷新。
编辑:当我第一次从列表中选择某个项目时,图像会加载,但当我选择另一个项目时,图像不会更新。
我两次都试过了,但都没有成功:
PictureBox1.Refresh();
PictureBox1.Update();
在后台,当ListBox1的Index被更改时,我运行了一个脚本,以转到一个特定的网页,并根据ListBox中选择的项进行截图,并替换当前imageBox的图像。我想,也许我没有给它时间去获取图像,所以我也尝试了这个方法,但没有成功:
System.Threading.Thread.Sleep(3000);
应用程序如下所示:
以下是ListBox1.IndexChanged事件的内容:
Process myProcess;
myProcess = Process.Start("C:/users/bnickerson/desktop/script/RegScript.cmd");
System.Threading.Thread.Sleep(5000);
myProcess.Close();
string imgLoc = "C:/users/bnickerson/Desktop/script/result/last.png";
pictureBox1.Image = Image.FromFile(imgLoc);
pictureBox1.Update();
2条答案
按热度按时间nfg76nw01#
正如Hans指出的,图像文件被锁定,直到返回的
Image
-object是Disposed
。mwecs4sa2#
我有一个类似的问题,图像不会刷新到新的图像,无论方法调用试图迫使它。
由于某种原因,仅在PictureBox未设置为“Dock:FILL”时发生
我的修复方法是处理映像并将其分配给NULL,然后应用新克隆的映像,如下所示。