Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: ListBox-ongelma

Puoliväkisten [06.01.2009 14:51:50]

#

Moi

Ekaa kertaa kirjottelen tälle palstalle. olen aika onneton ohjelmoimaan mutta pakon edessä joutuu nyt opettelemaan.

Ja ohjelmana VB 2008 Standard
Apuja opiskellut Visual Basic 2009 Mihael Halvorson kirjasta

Tuli vastaan seuraavanlainen ongelma:

Kuinka saisi kavennettua valintamahdollisuuksia seuraavanlaisessa tilanteessa:
ListBox3 :sta valitaan joku valinta ja tämä valinta vaikuttaa ListBox kakkoseen ja kolmoseen. Alunperin oli tarkoitus rajata vaihtoehtoja Listbox kakkosen sisällä esim jos valittaan Case0 on Listbox kakosessa 4 vaihtoehtoa ja jos Case 1 niin vain 3 vaihtoehtoa, tätä en saanut toimimaan. mutta jotenkin sain toimimaan valinnan kahden eri boxin välillä. tässä ongelmana on että ListBox 2 ja 4 eivät päivity kunnolla

Apuja kaipaillen

Koodia:

Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
    If ListBox3.SelectedIndex = 0 Then

        Select Case ListBox2.SelectedIndex


            Case 0
                PictureBox2.Image = System.Drawing.Image.FromFile("c:\kuvat\ala1A.jpg")
                PictureBox2.Visible = True

            Case 1
                PictureBox2.Image = System.Drawing.Image.FromFile("c:\kuvat\ala1B.jpg")
                PictureBox2.Visible = True
                ListBox4.Visible = True

        End Select
    Else
        ListBox2.Visible = False

    End If



End Sub



Private Sub ListBox4_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox4.SelectedIndexChanged
    If ListBox3.SelectedIndex = 1 Then

        Select Case ListBox4.SelectedIndex


            Case 0
                PictureBox2.Image = System.Drawing.Image.FromFile("c:\kuvat\ala2A.jpg")
                PictureBox2.Visible = True
            Case 1
                PictureBox2.Image = System.Drawing.Image.FromFile("c:\kuvat\ala2B.jpg")
                PictureBox2.Visible = True


        End Select
    Else
        ListBox4.Visible = False
    End If

End Sub
Private Sub ListBox3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox3.SelectedIndexChanged
    Select Case ListBox3.SelectedIndex

        Case 0
            If ListBox3.SelectedIndex = 0 Then
                ListBox2.Visible = True
                PictureBox3.Image = System.Drawing.Image.FromFile("c:\kuvat\kytkin1lapa.jpg")
                PictureBox3.Visible = True
            Else
                ListBox2.Visible = False

            End If

        Case 1
            If ListBox3.SelectedIndex = 1 Then

                PictureBox3.Image = System.Drawing.Image.FromFile("c:\kuvat\kytkin2lapaa.jpg")
                PictureBox3.Visible = True
                ListBox4.Visible = True
            Else
                ListBox4.Visible = False

            End If
        Case 2
            PictureBox3.Image = System.Drawing.Image.FromFile("c:\kuvat\katkaisija.jpg")
            PictureBox3.Visible = True


    End Select
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    If ListBox2.SelectedIndex = 0 And ListBox1.SelectedIndex = 0 Then
        Label3.Text = ("testi")
    End If
End Sub

Antti Laaksonen [06.01.2009 15:22:31]

#

Tuossa on esimerkki, jossa ensimmäisestä listasta valitaan maa ja toisesta kaupunki:

' ohjelmassa täytyy olla kaksi listaa ListBox1 ja ListBox2

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ListBox1.Items.Add("Ruotsi")
    ListBox1.Items.Add("Saksa")
    ListBox1.Items.Add("Suomi")
    ListBox1.SelectedIndex = 0
End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    ListBox2.Items.Clear()
    Select Case ListBox1.SelectedItem
        Case "Ruotsi"
            ListBox2.Items.Add("Göteborg")
            ListBox2.Items.Add("Malmö")
            ListBox2.Items.Add("Tukholma")
        Case "Saksa"
            ListBox2.Items.Add("Berliini")
            ListBox2.Items.Add("Hampuri")
            ListBox2.Items.Add("Köln")
        Case "Suomi"
            ListBox2.Items.Add("Helsinki")
            ListBox2.Items.Add("Tampere")
            ListBox2.Items.Add("Turku")
    End Select
End Sub

Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
    MsgBox("Valitsit maan " & ListBox1.SelectedItem & _
           " ja kaupungin " & ListBox2.SelectedItem)
End Sub

Puoliväkisten [06.01.2009 15:44:24]

#

Kiitoksia vinkistä. jotenkin ei vaan tuollainen tullut mieleen

Testataan illemmalla

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta