我有一個應用程序有一個列表框和一個圖片框。我需要的是當ListBox.IndexChanged事件被觸發時,PictureBox圖像需要更新或刷新。PictureBox圖像不會更新/刷新
編輯:第一次從列表中選擇的東西,圖像加載,但是當我選擇另一個項目,圖像不更新。
我已經沒有運氣都嘗試:
PictureBox1.Refresh();
PictureBox1.Update();
在後臺,當爲ListBox的指數改變我跑去一個特定的網頁,並根據所產品採取截圖的腳本在列表框中選擇並替換當前的圖像框的圖像。我在想,也許我只是wasnt給它時間去獲得圖像,所以我沒有運氣嘗試這樣做,以及:
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();
你將不得不驗證當加載它時last.png圖片的樣子。只是猜測3秒的等待時間並不是一種非常可靠的方式來做你正在做的事情。 – LarsTech
這是非常不可靠的代碼,你不知道腳本需要多長時間,或者它是否成功地完成了它的工作。使用Process.Exited事件是最低要求。 Image.FromFile()也會對文件加鎖,所以再次運行該腳本會使其失敗,可能無法識別,因爲您沒有檢查Process.ExitCode屬性。丟失.cmd文件,它所做的任何事情都可以在C#中更好地完成。 –
我會更新代碼,使其更可靠,一旦我可以找出如何更新圖像。我確認腳本正在運行並在等待時間結束之前完成。它只是不更新。 – Prokzy