Jump to content

Duvida em Visual Basic 2008


AMMMMMS

Recommended Posts

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.

Link to comment
Share on other 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.

Lema: Se eu não saber de alguma coisa não se preocupem porque tento sempre ajudar alguma coisita, nem que seja, por palpites/sugestões.

Link to comment
Share on other 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?

Link to comment
Share on other 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)

Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Link to comment
Share on other 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

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.