文章編號: 311754 - 上次校閱: 2002年7月24日 - 版次: 1.0

PRB: 當您將 PictureBox 影像屬性設定為一個檔案,影像檔案都已鎖定

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
本文章的有 Microsoft Visual Basic.NET] 版本請參閱 309482? (http://support.microsoft.com/kb/309482/EN-US/ )

本文參照下列 Microsoft.NET Framework 類別庫命名空間:
  • System.IO

在此頁中

全部展開 | 全部摺疊

徵狀

當您載入 PictureBox 控制項圖片檔案時,[Microsoft Visual Studio.NET 整合式開發環境 (IDE) 會維護檔案上的鎖定。當您將 影像 屬性設定 PictureBox 控制項的至檔案以手動方式在設計階段,或者在執行階段使用 FromFile 方法時,就會發生這種情況。

解決方案

如果要解決這個問題,使用 FileStream 物件,如下所示:
// Make sure that you have added the System.IO namespace.
using System.IO;

// Specify a valid picture file path on your computer.
FileStream fs;
fs = new FileStream("C:\\WINNT\\Web\\Wallpaper\\Fly Away.jpg", FileMode.Open, FileAccess.Read);
pictureBox1.Image = System.Drawing.Image.FromStream(fs);
fs.Close();
				

狀況說明

這種行為是經過設計規劃的。

其他相關資訊

設計時間

當您的 PictureBox 控制項的 [影像] 屬性設定在設計階段時,Visual Studio.NET IDE 鎖定圖片檔案。圖片檔案維持鎖定的即使您重設 Image 屬性或刪除 PictureBox 控制項。解除鎖定圖片檔案唯一的方法是關閉 Visual Studio.NET IDE。

重製行為的步驟

  1. 在 Visual 的 Studio.NET 中建立新的 Visual C# Windows 應用程式專案。預設會建立 Form1。
  2. 加入 Form1 中, 新增 PictureBox 控制項並設定 影像 屬性指向圖片檔。
  3. 在 Windows 檔案總管中嘗試重新命名作為 PictureBox 控制項中的 [影像] 內容的圖片檔案。您會收到共用違規錯誤訊息。
  4. 在 [屬性] 視窗中以滑鼠右鍵按一下 [圖像] 屬性,然後按一下 [重設]。請嘗試重新命名圖片檔案。您會收到共用違規錯誤訊息。
  5. 從 Form1,刪除 PictureBox 控制項,然後再嘗試重新命名圖片檔案從 Windows 檔案總管。您一次收到共用違規的錯誤訊息。

執行時間

如果使用 Image.FromFile 方法載入 PictureBox 控制項中的圖片圖片檔案已鎖定,當您啟動應用程式。應用程式執行時,圖片檔案維持鎖定。即使您在執行階段設定為 NothingImage 屬性,圖片檔案已被鎖定。

重製行為的步驟

  1. 在 Visual 的 Studio.NET 中建立新的 Visual C# Windows 應用程式專案。預設會建立 Form1。
  2. 將一個 PictureBox 控制項和一個 按鈕 控制項加入 Form1。
  3. 下列程式碼貼為 按鈕 控制項的 Click 事件中:
    // Specify a valid picture file path on your computer.
    pictureBox1.Image = Image.FromFile("C:\\WINNT\\Web\\Wallpaper\\Fly Away.jpg");
    					
  4. 按下 F5 以執行該應用程式並再按一下 [按鈕] 控制項,以載入 PictureBox 控制項中的圖片。
  5. 雖然執行應用程式,嘗試使用 [Windows 檔案總管] 來重新命名圖片檔案。您會收到共用違規錯誤訊息。

這篇文章中的資訊適用於:
  • Microsoft Visual C# .NET 2002 Standard Edition
關鍵字:?
kbmt kbctrl kbprb KB311754 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:311754? (http://support.microsoft.com/kb/311754/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。