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 Sub
Olikohan 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 Sub
Tä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.