' declare some form level vars
Dim dTotalQuantity, dTotalCost As Double
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim I As Integer
' didn't need the loop or select case but it was fun
For I = 0 To 2
Select Case I
Case 0
lstProduct.Items.Add("Computers")
lstCost.Items.Add("1500.00")
lstQuantity.Items.Add("5")
Case 1
lstProduct.Items.Add("Cell Phones")
lstCost.Items.Add("150")
lstQuantity.Items.Add("13")
Case 2
lstProduct.Items.Add("Optical Mouse")
lstCost.Items.Add("10")
lstQuantity.Items.Add("25")
End Select
Next I
' get the values
For I = 0 To lstProduct.Items.Count - 1
dTotalCost += lstCost.Items.Item(I)
dTotalQuantity += lstQuantity.Items.Item(I)
Next
' show the values
lblTotalCost.Text = dTotalCost
lblTotalQuantity.Text = dTotalQuantity
End Sub
Private Sub cmdRemove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdRemove.Click
Dim dQuantity, dProductCost As Double
' do some work
If lstProduct.SelectedIndex <> -1 Then
dQuantity = lstQuantity.SelectedItem
dTotalQuantity = dTotalQuantity - dQuantity
lblTotalQuantity.Text = dTotalQuantity
dTotalCost = Convert.ToDouble(lblTotalCost.Text)
dTotalCost = dTotalCost - lstCost.SelectedItem
lblTotalCost.Text = dTotalCost.ToString
lstQuantity.Items.RemoveAt(lstProduct.SelectedIndex)
lstCost.Items.RemoveAt(lstProduct.SelectedIndex)
lstProduct.Items.RemoveAt(lstProduct.SelectedIndex)
Else
MsgBox("PLease select an item to be removed")
End If
End Sub
Private Sub lstProduct_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstProduct.SelectedIndexChanged
' just to make sure we have all the items selected
' if the other listbox's are used by the user
' you may want to add similare code in those
' listboxes as well
lstQuantity.SelectedIndex = lstProduct.SelectedIndex
lstCost.SelectedIndex = lstProduct.SelectedIndex
End Sub
End Class