Eli ongelma on tämä:
Mulla on List1.AddItem käskyllä laitettu muutamia kohteita listboxiin.
Tarkotus olis, että kun laske-nimistä painiketta painaa, niin label1.caption kenttään lisättäisiin aina valittuna olevan listboxin kohteen hinta miksikä se nyt sitten onkaan määritetty. Ja siis se aina plussaisi(+) sen hinnan sen vanhan hinnan päälle.
Muuten tää toimii ihan ok, mutta jos painan vaikka kaikkia listboxin kohteita, niin laske painike lisää lopputulokseen kaikki klikkaukset mitä oon listboxissa klikannut.
Miten saan sen toimimaan niin, että ainostaan valittuna oleva kenttä ListBoxista lasketaan hintaan?
Kiitos avusta jo etukäteen!
PS. Yritin hakea vastausta haulla, mutta en löytänyt...
Tässä on toimiva esimerkki:
Private Sub Form_Load()
Label1.Caption = 0
List1.AddItem 1
List1.AddItem 2
List1.AddItem 3
End Sub
Private Sub Command1_Click()
Label1.Caption = Val(Label1.Caption) + List1.List(List1.ListIndex)
End SubOlikohan sinulla hinnan lisäys vahingossa listan tapahtumassa?
Olin kokeillut itse vähän jokatavalla mitä vain keksin. Kyllä jossain vaiheessa se hinta oli listankin tapahtumissa :).
Mutta nyt se kyllä toimii niinkuin ajattelin, mutta haluaisin niin, että noitten numeroitten sijasta siinä olis tekstiä (Tuotteen nimi esim.). Ei tuntunut toimivan niin...?
Jos ListBoxissa on tuotteen nimi niin missä sen hinta on?
Tuotteiden nimet ja hinnat voi vaikkapa tallentaa taulukkoihin, ja sitten kun listalta valitaan jokin tuote, taulukosta voi katsoa, paljonko se maksaa.
' tuotteiden nimet
Dim nimet(100) As String
' tuotteiden hinta
Dim hinnat(100) As Currency
' tuotteiden määrä
Dim maara As Integer
' valittu hinta
Dim hinta As Currency
' lisää uuden tuotteen taulukkoon ja listaan
Sub UusiTuote(tnimi As String, thinta As Currency)
maara = maara + 1
nimet(maara) = tnimi
hinnat(maara) = thinta
List1.AddItem tnimi
End Sub
' hakee tuotteen hinnan taulukosta
Function HaeHinta(tnimi As String) As Currency
Dim i As Integer
For i = 1 To maara
If nimet(i) = tnimi Then
HaeHinta = hinnat(i)
Exit Function
End If
Next
End Function
Private Sub Form_Load()
hinta = 0
Label1.Caption = 0
UusiTuote "alttoviulu", 120
UusiTuote "banjo", 50
UusiTuote "cembalo", 250
End Sub
Private Sub Command1_Click()
hinta = hinta + HaeHinta(List1.List(List1.ListIndex))
Label1.Caption = hinta
End SubTässä tuotteita voi olla enintään 100, mutta määrää voi kasvattaa muuttamalla taulukon ylärajaa.
Ok, kyllä se tästä lähtee, kiitoksia kovasti avusta!
Aihe on jo aika vanha, joten et voi enää vastata siihen.