• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

AMMMMMS

Duvida em Visual Basic 2008

11 mensagens neste tópico

Gostaria que alguem me ajudasse no seguinte exercicio.

Preciso de seleccionar um determinado item numa listbox1 e consoante o item seleccionado, vao aparecer outros items na listbox2.

Por exemplo, se eu seleccionar gripe na listbox1, na listbox 2 terao que aparecer os medicamentos que eu escolher para tratar a gripe.

Espero pela vossa ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

if

else

      if

      else

            ...

Se usares uma checkbox usa o if na check box ...

Podes fazer uso da cena do visible/hiden ou do able/disable

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podias.me dar um exemplo de um codigo

Eu ja adicionei a listbox1 da seguinte maneira

Listbox1.Items.Add (Gripe)

como eu faco pra seleccionar gripe e ao carregar aparecer os medicamentos

Eu ja tentei fazer por if mas nao esta aparecer nada na listbox 2, apenas na listbox 1

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para resolver o teu problema tens que fazer o seguinte;

1 - Tens que ver qual é o item que estais a seleccionar

2 - Fazes um sql ou filtro na base de dados;

3 - Adicionar o resultado dessa pesquisa na Listbox2.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Primeiro de tudo de onde veem esses valores das listbox? sao postos manualmente?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim,eu coloco na listbox o que quero, por exemplo>

Listbox1.Items.Add (Gripe)

Listbox1.Items. Add (Dor)

e o meu objectivo e selccionar um deles e conforme for gripe ao dor dar os medicamentos. estes medicamentos aparecem na listbox2 e tambem sao escolhidos por mim mas eu nao sei como faco a ligacao entre as listbox.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim,eu coloco na listbox o que quero, por exemplo>

Listbox1.Items.Add (Gripe)

Listbox1.Items. Add (Dor)

e o meu objectivo e selccionar um deles e conforme for gripe ao dor dar os medicamentos. estes medicamentos aparecem na listbox2 e tambem sao escolhidos por mim mas eu nao sei como faco a ligacao entre as listbox.

Cada vez que inicias o programa, add items à lista? isso nao vai sobrecarregar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas se estiveres a preencher os items manualmente, o teu problema é só enviar os valores para a listbox2, quando seleccionares um item na listbox1? Então só tens de criar o Evento SelectedIndexChanged da listbox1, e aí preencher os items para a listbox2, de acordo com o item seleccionado (ListBox1.SelectedItem)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se preenches manualmente tens de fazer:

1º detectar o que estas a seleccionar

2º select case com o que vai aparecer na lisbox2

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes construír uma estructura abstracta com simples emparelhamentos de listas.

Podes ver aqui um exemplo do que te estou a tentar dizer.

Um exemplo mais aproximado do teu problema seria algo como emparelhar listas a dicionários:

(estou praticamente a dar-te o exercício, mas copy-paste sem perceberes ou fazeres o mínimo por perceber, é enganar-te a ti mesmo)

Public Class Form1

    Private Doenca As New Dictionary(Of String, List(Of String))

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Doenca.Add("Gripe", New List(Of String))
        Doenca("Gripe").Add("Comprimidos")
        Doenca("Gripe").Add("Sopas")
        Doenca("Gripe").Add("Descanço")

        Doenca.Add("Enxaquecas", New List(Of String))
        Doenca("Enxaquecas").Add("Comprimidos")
        Doenca("Enxaquecas").Add("Paciência")

        Doenca.Add("Morte", New List(Of String))
        Doenca("Morte").Add("Vender a alma ao diabo")
        Doenca("Morte").Add("Beber vodka do lidl")

        For Each D As String In Doenca.Keys
            ListBox1.Items.Add(D)
        Next

    End Sub

    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        If Doenca.Keys.Contains(ListBox1.SelectedItem.ToString) Then

            ListBox2.Items.Clear()

            For Each Cura As String In Doenca(ListBox1.SelectedItem.ToString)
                ListBox2.Items.Add(Cura)
            Next
        End If
    End Sub

End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pelas ajudas, consegui resolver o exercicio mas por duas checkbox..

Mesmo assim vi o codigo que enviaste e tambem ja percebi.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora