Notifications
Clear all

Exibir imagem correspondente do item ao selecionar listbox ?

3 Posts
3 Usuários
0 Reactions
1,403 Visualizações
(@themadara)
Posts: 1
New Member
Topic starter
 

Ola galera antes de tudo, vou me apresentar... Sou novo no Fórum e também sou muito iniciante em programação e venho tentando fazer um projeto que ao meu ver parece simples mas que estou quebrando a cabeça em alguns aspectos... recentemente eu aprendi a criar uma Listbox e a preencher com dados da minha planilha porém minha duvida é como eu faço para que quando eu clique sobre uma item da minha listbox apareça uma determinada imagem...
Por exemplo: Tenho um programa e nele tem uma listbox e uma caixa de imagem, dentro desta listbox tenho os seguintes itens:
BANANA
MAÇÃ
PERA
Minha intenção é que quando eu clicar em pera na listbox apareça na caixa de imagem uma imagem de uma pera, e quando clicar em banana trocar a imagem da pera pela imagem de uma banana... deu pra entender ??

Agradeço desde já !!

 
Postado : 05/01/2014 4:12 pm
(@tacito)
Posts: 67
Trusted Member
 

Bom dia!

Não sei se vai ajudar, mas acho que dá pra fazer o que você quer de dois jeitos.

O primeiro jeito é com um banco de imagens, uma pasta que você deve armazenar as imagens de cada item. Para facilitar você deve nomear cada imagem com o nome na lista, no seu exemplo: BANANA, MACA (pelo que sei VBA não aceita acento, você vai ter que mudar o nome na lista também, senão não acha a figura), PERA.

Aí você coloco esse código no formulário:

Private Sub 'nome_da_Listbox'_Change()

Me.'Nome_da_caixa_de_imagem'.Picture = LoadPicture("'Caminho_da_imagem' "  & me.'Nome_da_Listbox'.Value & ".'extensao_da_imagem'")

End Sub

Assim quando você selecionar um item da lista ele vai exibir a imagem correspondente. esse jeito é bom caso as imagens não sejam sempre as mesmas, ou caso possa adicionar novos nomes, porque fica mais fácil alterar ou adicionar as imagens na pasta que está usando de banco de dados.

Outro jeito de fazer é criar um monte de caixa de imagem, e exibir apenas a caixa correspondente ao material selecionado, por exemplo para sua lista.

Private Sub 'nome_da_Listbox'_Change()

If Me.'nome_da_Listbox'.Value = "BANANA" Then

    Me.Im_BANANA.Visible = True
    
    Me.Im_MACA.Visible = False
    
    Me.Im_PERA.Visible = False
    
ElseIf Me.'nome_da_Listbox'.Value = "MACA" Then

    Me.Im_BANANA.Visible = False
    
    Me.Im_MACA.Visible = True
    
    Me.Im_PERA.Visible = False

ElseIf Me.'nome_da_Listbox'.Value = "PERA" Then

    Me.Im_BANANA.Visible = False
    
    Me.Im_MACA.Visible = False
    
    Me.Im_PERA.Visible = True
    
End If

End Sub

Dá pra fazer por loop também (fica bem mais simples), mas não lembro exatamente como é, e agora não consigo pesquisar.

PS. não testei aqui, pode ser que tenha algum erro, qualquer coisa é só falar.

 
Postado : 06/01/2014 5:47 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

TheMadara,

Bom Dia!

Veja se assim lhe atende.

 
Postado : 06/01/2014 5:48 am