Artigo: 311754 - Última revisão: quarta-feira, 24 de Julho de 2002 - Revisão: 1.0

PROBLEMA: O ficheiro de imagem é bloqueado quando define a propriedade PictureBox imagem para um ficheiro

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Para obter uma Microsoft Visual Basic .NET versão deste artigo, consulte 309482  (http://support.microsoft.com/kb/309482/EN-US/ ) .

Este artigo faz referência à seguinte espaço de nomes Microsoft .NET Framework Class Library:
  • System.IO

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Quando carrega um controlo PictureBox com um ficheiro de imagem, o Microsoft Visual Studio .NET integrada Development Environment (IDE) mantém um bloqueio no ficheiro. Isto ocorre quando define a propriedade de imagem de um controlo PictureBox para um ficheiro manualmente no momento da estruturação ou quando utiliza o método FromFile em tempo de execução.

Resolução

Para contornar este problema, use o objeto FileStream da seguinte forma:
// 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();
				

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Tempo de estruturação

Quando definir a propriedade imagem de um controlo PictureBox no momento da estruturação, o Visual Studio .NET IDE bloqueia o ficheiro de imagem. O ficheiro de imagem permanece bloqueado mesmo repor a propriedade ' imagem ou eliminar o controlo PictureBox . A única forma para desbloquear o ficheiro de imagem é fechar o Visual Studio .NET IDE.

Passos para reproduzir o comportamento

  1. No Visual Studio. NET, crie um novo projecto de aplicação do Windows do Visual C#. É criado o Form1 por predefinição.
  2. Adicionar um controlo PictureBox ao Form1 e defina a propriedade ' imagem para um ficheiro de imagem.
  3. No Explorador do Windows, tente mudar o nome de ficheiro de imagem que utilizado como a propriedade ' imagem no controlo PictureBox . Recebe uma mensagem de erro violação de partilha.
  4. Na janela Propriedades , clique com o botão direito do rato a propriedade ' imagem e, em seguida, clique em Repor . Tente mudar o nome do ficheiro de imagem. Recebe uma mensagem de erro violação de partilha.
  5. Elimine o controlo PictureBox Form1 e tente mudar o nome do ficheiro de imagem a partir do Explorador do Windows. Recebe novamente uma mensagem de erro de violação de partilha.

Executar hora

Se utilizar o método Image.FromFile para carregar uma imagem de um controlo PictureBox , o ficheiro de imagem será bloqueado quando iniciar a aplicação. O ficheiro de imagem permanece bloqueado enquanto a aplicação é executada. O ficheiro de imagem está bloqueado, mesmo que defina a propriedade ' imagem como Nothing em tempo de execução.

Passos para reproduzir o comportamento

  1. No Visual Studio. NET, crie um novo projecto de aplicação do Windows do Visual C#. É criado o Form1 por predefinição.
  2. Adicione um controlo PictureBox e um controlo de botão ao Form1.
  3. Cole o seguinte código no evento Click do controlo de botão :
    // Specify a valid picture file path on your computer.
    pictureBox1.Image = Image.FromFile("C:\\WINNT\\Web\\Wallpaper\\Fly Away.jpg");
    					
  4. Prima F5 para executar a aplicação e, em seguida, clique no controlo de botão para carregar a imagem no controlo PictureBox .
  5. Enquanto a aplicação é executada, tente utilizar O Explorador do Windows para mudar o nome do ficheiro de imagem. Recebe uma mensagem de erro violação de partilha.

A informação contida neste artigo aplica-se a:
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbctrl kbprb KB311754 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 311754  (http://support.microsoft.com/kb/311754/en-us/ )