PictureBox e OpenFileDialog
Há alguns tópicos eu falei sobre o PictureBox isoladamente, recebendo uma imagem estática. Agora vamos falar dele junto com o OpenFileDialog. Eles formam um par e tanto!
Bom, sem me prologar muito, a PictureBox, apenas relembrando, é uma caixa que pode armazenar imagens de formatos diversos. Já o OpenFileDialog é uma caixa de seleção de arquivos. Elas funcionam muito bem em conjunto, pois, para permitir que o usuário altere a imagem da PictureBox é necessário lhe dar uma forma de selecioná-la e esse é o papel do OpenFileDialog. A ligação entre eles é muito fácil de ser feita. Vamos abrir nosso pequeno programa de Controle de Clientes e, no formulário frmSobre, adicionar uma PictureBox e um botão, conforme a imagem abaixo:
A PictureBox eu nomeei de "picLogo" e o botão de "btnCarregarImagem".
Agora vamos adicionar o componente OpenFileDialog, arrastando-o para o formulário e nomeando-o como "ofdLogo", conforme mostra a imagem abaixo:
Vamos começar a adicionar código a estes componentes. Comecemos clicando duas vezes no botão "Carregar Imagem" para gerar o método Click e, dentro dele, vamos adicionar o código abaixo:
Foram necessários estes quatro parâmetros, pois estamos lidando com uma caixa de diálogo, que é um componente grande e com muitas variáveis, mas tudo é bastante simples e intuitivo. De qualquer forma, abaixo segue o código comentado:
Como próximo passo vamos clicar duas vezes no OpenFileDialog:
Com isso criaremos o método FileOk. Agora, dentro dele, criaremos o seguinte código:
picLogo.Image = Image.FromFile(ofdLogo.FileName);
O que este código faz é adicionar à propriedade Image da PictureBox, uma imagem do arquivo que foi selecionado pelo OpenFileDialog e que será enviado através do seu método FileName, que retorna uma string com o caminho do arquivo. Parece complicado, mas não é!
Agora vamos executar o código, abrir o formulário "Sobre o Programa" e clicar em “Carregar Imagem”. Você terá uma tela parecida com a imagem abaixo:
Vou selecionar um arquivo qualquer para ilustrar como ele será inserido no PictureBox.
Aí está a imagem inserida, no entanto ela não coube na PictureBox e está sendo exibido apenas um trecho da mesma. Isso pode ser facilmente corrigido alterando a propriedade SizeMode, conforme ilustra a figura abaixo:
Alterando o valor desta propriedade para StretchImage, ela será ajustada automaticamente na PictureBox. Vou executar o código novamente agora para demonstrar a diferença, vejam:
Agora a imagem está ajustada à PictureBox!
Podemos adicionar uma borda, conforme explicado no tópico apenas sobre PictureBox, alterando a propriedade BorderStyle e deixando-a assim:
É isso! Com este tópico demonstrei como utilizar o OpenFileDialog para carregar uma imagem para uma PictureBox. A forma de utilizá-lo para outros tipos de arquivos é a mesma!
Na sequência falarei sobre várias propriedades do Visual C# que ajudarão a programar o código ou a melhorar a aparência dos formulários.