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
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
Kiitoksia vinkistä. jotenkin ei vaan tuollainen tullut mieleen
Testataan illemmalla
Aihe on jo aika vanha, joten et voi enää vastata siihen.