EXCLUIR ITEM DE LISTEVIEW SUBTRAINDO VALOR

SANROMAN 06/11/2013 10:37:14
#430786
Bom dia amigos

Tenho um listview de produtos que faz a soma de uma coluna e insere o valor em uma textbox. A cada item selecionado a soma e efetuada. Se tenho que excluir algum item da listview e que começa o problema. Se tenho 3 itens na listview e excluo o último item tudo funciona bem, por exemplo

bala 25,00
doce 15,00
sorvete 10,00

total 50,00

Se excluo o item sorvete o total e de 40,00, mas se excluo o item doce o total aparece com o valor de 25,00 quando deveria ser de 35,00, ou seja exclui também os valores dos itens abaixo do item excluído

O código usado é o seguinte:

Private Sub ExcluirItem()

Dim valorItem As Decimal
Dim i As Integer = 0

Dim Resposta As DialogResult = Windows.Forms.MessageBox.Show([Ô]Confirma exclusão do item da lista de compras?[Ô], _
[Ô]Excluir Itens[Ô], MessageBoxButtons.YesNo, _
MessageBoxIcon.Question)

If Resposta = Windows.Forms.DialogResult.Yes Then
For Each ListItem As ListViewItem In listVendaDireta.Items
If ListItem.Checked Then
For x = 1 To 1
valorItem += Convert.ToSingle(listVendaDireta.Items(ListItem.Index).SubItems(3).Text)
listVendaDireta.Items.RemoveAt(ListItem.Index)
Next
End If
txtTotalVenda.Text = CDbl(txtTotalVenda.Text - valorItem)
Next
End If

End Sub

Como resolver isso?
MADMAX 06/11/2013 11:46:17
#430791
Resposta escolhida
SANROMAN faz mais ou menos assim que testei aqui e funciona belezinha.

Dim valor As Decimal
valor = 0
For Each ListItem As ListViewItem In ListView1.Items

If (ListItem.Checked) Then

valor += Convert.ToDecimal(ListItem.SubItems(1).Text)
ListView1.Items.Remove(ListItem)

End If
Next
Label2.Text = Convert.ToDecimal(Label2.Text) - valor
PEGUDO 06/11/2013 12:11:58
#430794
faça algo tipo assim:

Private Sub Button8_Click(sender As System.Object, e As System.EventArgs) Handles Button8.Click
Dim valor As Int16 = 0

For Each item As ListViewItem In ListView1.Items
If item.Checked Then
ListView1.Items.RemoveAt(item.Index)
Else
valor += CInt(item.SubItems(3).Text)
End If
Next

MsgBox(valor)
End Sub
SANROMAN 06/11/2013 14:34:38
#430801
Olá MADMAX

Novamente muito obrigado pela ajuda. De primeira de novo, valeu cara.

Funcionou perfeitamente não importando o local nem o número de linhas excluídas do listview.

Tô na dívida contigo...

Um abraço
Tópico encerrado , respostas não são mais permitidas