| 

.NET C# Java Javascript Exception

1
Folgendes Problem:

Beim Löschen einer Pos. Zeile wird der LVItem falsch gesetzt!!!

Fehler: LVItem = ListView.Items(i) ==> "System.ArgumentOutOfRangeException"

Code:
Private Sub butBerechnen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butBerechnen.Click

'Update List View die Items neu einlesen!!!!
ListView.BeginUpdate()


'lokale Variablen
Dim i As Integer
Dim Rbetrag, Mwst As Double
Dim LVItem As ListViewItem

'LVItem = ListView.Items.Add(Pos.ToString("n0"))

Rbetrag = 0
'Aufsummieren der Gesamtbeträge der Rechnung zum Netto-Rechnungsbetrag:
For i = 0 To Pos - 1 '##### Pos und Artikelnummer werden hochgezählt!!!! beim löschen einer Zeile Pos. gibts Probleme ...
LVItem = ListView.Items(i)
Rbetrag = Rbetrag + CDbl(LVItem.SubItems(5).Text)
Next i

'Mehrwertsteuer auf Netto-Rechnungsbetrag ermitteln:
Mwst = Rbetrag * 0.19

'Brutto-Rechnungsbetrag ermitteln:
Rbetrag = Rbetrag + Mwst

'Mehrwertsteuer und Brutto-Rechnungsbetrag anzeigen
txtMwSt.Text = Mwst.ToString("c")
txtRBetrag.Text = Rbetrag.ToString("c")

'EndUpdate wenn ende add items im ListView.
ListView.EndUpdate()

End Sub

'##### POS im ListView löschen...

Private Sub butPosDelete_Click(sender As Object, e As EventArgs) Handles butPosDelete.Click
'Wenn nix im ListView ausgewählt wurde, Prozedur beenden.
If ListView.SelectedItems.Count = 0 Then Exit Sub
'Wenn doch, dann mit dem folgenden Code weitermachen!!!!

'### Selektierte Position in LiestView löschen TM 19.10.2017
ListView.Items.Remove(ListView.SelectedItems(0))
'ListView.Items.Remove(ListView.SelectedIndices.Clear(0))




ListView.BeginUpdate() '### geht doch...
'#### ListView Aktualisieren
ListView.Refresh()
'#### >>>> Beim neuberechnen gibts Probleme POS !!!

'ListView.Items.Add(Pos.ToString(0)) ' "n0"
'ListView-Objekt um neue Zeile ergänzen
'Dim LVItem As ListViewItem
'LVItem = ListView.Items.Add(Pos.ToString("n0"))
For i As Integer = ListView.Items.Count - 1 To 0 Step -1

If ListView.Items(i).Selected Then ListView.Items.RemoveAt(i)

Next
'ListView.Items.Add(Pos.ToString ((0)
'= SortOrder.Ascending
'lvwColumnSorter.Order = SortOrder.Ascending
'ListView.Items.Clear() 'Wird leider komplett gelöscht !!!!!

ListView.Refresh()




'EndUpdate wenn ende add items im ListView.
ListView.EndUpdate()
End Sub

'### POSITION neu anordnen im ListView...

Private Sub butTest_Click(sender As Object, e As EventArgs) Handles butTest.Click
'#### Test soll die Pos Nummerierung neu setzten...
' Dim LVItem As ListViewItem
Dim i As Integer

For i = 0 To ListView.Items.Count - 1 'LVNumbered.Items.Count - 1


ListView.Items(i).Text = i + 1.ToString

Next
'LVItem = ListView.Items(i)
End Sub

Wer hat dazu eine Idee!!!!

Gruss Thomas Meier
News:
24.10.2017
tsmeier 51 1 3
5 Antworten
0
Habs jetzt so ausgetrickst...

Pos = +1 'POS um eins erhöhen !!!!!!
For i As Integer = ListView.Items.Count - 1 To 0 Step 2
Next

Gruss
Thomas Meier
24.10.2017
tsmeier 51 1 3
0
Sorry um 2 eröhen dann stimmt die POS auch im Word Ausdruck...

Pos = +2 'POS um zwei erhöhen !!!!!!
For i As Integer = ListView.Items.Count - 1 To 0 Step 2
Next

Gruss
Thomas Meier
24.10.2017
tsmeier 51 1 3
0
Korrektur:

Pos = Pos - 1 'POS um minus eins verrringern !!!!!!
For i As Integer = ListView.Items.Count - 1 To 0 Step 1
Next

Print Ausdruck stimmt jetzt.

Gruss

Thomas Meier
24.10.2017
tsmeier 51 1 3
0
nächste Hürte - wenn zwei oder mehrere POS gelöscht werden... in ListView

!!!!!!!! Idee

Gruss

Thomas Meier
24.10.2017
tsmeier 51 1 3
0
So gehts...

Im Load eintagen...

ListView.MultiSelect = False '### Multiselect deaktivieren

Gruss

Thomas Meier
25.10.2017
tsmeier 51 1 3

Stelle deine --Frage jetzt!