ID do artigo: 311754 - Última revisão: quarta-feira, 24 de julho de 2002 - Revisão: 1.0

PROBLEMA: Arquivo de imagem é bloqueado quando você define a propriedade imagem PictureBox para um arquivo

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 uma versão deste artigo do Microsoft Visual Basic. NET, consulte 309482  (http://support.microsoft.com/kb/309482/EN-US/ ) .

Este artigo se refere ao seguinte namespace Microsoft .NET Framework Class Library:
  • System.IO

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Quando você carregar um controle PictureBox com um arquivo de imagem, o Microsoft Visual Studio .NET integrado Development Environment (IDE) mantém um bloqueio no arquivo. Isso ocorre quando você define a propriedade Image de um controle PictureBox como um arquivo manualmente em tempo de design, ou quando você usa o método FromFile em tempo de execução.

Resolução

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

Situação

Esse comportamento é por design.

Mais Informações

Tempo de design

Quando você definir a propriedade Image de um controle PictureBox em tempo de design, o IDE do Visual Studio .NET bloqueia o arquivo de imagem. O arquivo de imagem permanece bloqueado, mesmo se você redefine a propriedade Image ou excluir o controle PictureBox . A única maneira para desbloquear o arquivo de imagem é fechar o IDE do Visual Studio .NET.

Etapas para reproduzir o problema

  1. No Visual Studio. NET, crie um novo projeto do Visual translation from VPE for Csharp Windows Application. O Form1 é criado por padrão.
  2. Adicione um controle PictureBox para Form1 e defina a propriedade da imagem para um arquivo de imagem.
  3. No Windows Explorer, tente renomear o arquivo de imagem usado como a propriedade da imagem no controle PictureBox . Você recebe uma mensagem de erro violação de compartilhamento.
  4. Na janela Properties , clique a propriedade da imagem com o botão direito do mouse e, em seguida, clique em Redefinir . Tente renomear o arquivo de imagem. Você recebe uma mensagem de erro violação de compartilhamento.
  5. Excluir o controle PictureBox do Form1 e, em seguida, tente renomear o arquivo de imagem do Windows Explorer. Você novamente receber uma mensagem de erro violação de compartilhamento.

Tempo de execução

Se você usar o método Image.FromFile para carregar uma figura em um controle PictureBox , o arquivo de imagem é bloqueado quando você iniciar o aplicativo. O arquivo de imagem permanece bloqueado enquanto o aplicativo é executado. O arquivo de imagem está bloqueado, mesmo que você defina a propriedade da imagem como Nothing em tempo de execução.

Etapas para reproduzir o problema

  1. No Visual Studio. NET, crie um novo projeto do Visual translation from VPE for Csharp Windows Application. O Form1 é criado por padrão.
  2. Adicione um controle PictureBox e um controle de botão ao Form1.
  3. Cole o seguinte código no evento Click para o controle Button :
    // Specify a valid picture file path on your computer.
    pictureBox1.Image = Image.FromFile("C:\\WINNT\\Web\\Wallpaper\\Fly Away.jpg");
    					
  4. Pressione F5 para executar o aplicativo e, em seguida, clique no controle Button para carregar a figura no controle PictureBox .
  5. Enquanto o aplicativo é executado, tente usar o Windows Explorer para renomear o arquivo de imagem. Você recebe uma mensagem de erro violação de compartilhamento.

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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/ )