EXCLUIR ITEM DE LISTEVIEW SUBTRAINDO VALOR
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?
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?
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
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
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
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
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