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