Toon posts:

[VB.NET] Items tussen 2 listboxen verplaaten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ergens in mijn programma verplaats ik items tussen 2 listboxen. Het toevoegen van de items van de ene naar de andere en visa versa gaat goed. Met deze code that is:
Visual Basic:
1
2
3
4
5
6
    Private Sub btnWizard1Bes2Ver_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWizard1Bes2Ver.Click
        ' Verplaats items van beschikbare calculators naar verantwoordelijke calculators
        For i As Integer = 0 To lboxWizard1BischikbareCalculators.SelectedItems.Count - 1
            lboxWizard1VerantwoordelijkeCalculators.Items.Add(lboxWizard1BischikbareCalculators.SelectedItems(i))
        Next i
    End Sub


Maar nu wil ik bij het overzetten ook zorgen dat hij de items die hij in de andere listbox erbij zet uit de originele ook verwijderd worden. Ik zou zeggen zet dit:
Visual Basic:
1
lboxWizard1BischikbareCalculators.Items.RemoveAt(lboxWizard1BischikbareCalculators.SelectedIndices(i))
of dit:
Visual Basic:
1
lboxWizard1BischikbareCalculators.Items.Remove(lboxWizard1BischikbareCalculators.SelectedItems(i))
in die forloop. Maar dan is volgens VB.NET opeens de index buiten de grens van de array? Terwijl ik eigenlijk hetzelfde doe als bij het toevoegen van items maar dan niet add maar remove?

  • whoami
  • Registratie: December 2000
  • Laatst online: 07-04 22:26
Van achter naar voor.

Als je vanaf 0 begint, dan klopt je count natuurlijk niet meer als je eentje verwijderd hebt.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op donderdag 13 oktober 2005 @ 11:51:
Van achter naar voor.

Als je vanaf 0 begint, dan klopt je count natuurlijk niet meer als je eentje verwijderd hebt.
Verwijderd hij ze niet allemaal in een keer dan, dus als hij er eentje weg haalt veranderd meteen de index van het volgende item dat verwijderd moet worden? Maar wat bedoel je dan precies met van achter naar voor?

  • whoami
  • Registratie: December 2000
  • Laatst online: 07-04 22:26
Ipv bij het eerste element te beginnen bij het doorlopen van je items, begin je van bij het laatste.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Kan ik een for next gewoon van 10 tot 0 laten gaan bijvoorbeeld? Want als ik dat test werkt het niet:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
    Private Sub btnWizard1Bes2Ver_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWizard1Bes2Ver.Click
        ' Verplaats items van beschikbare calculators naar verantwoordelijke calculators
        For i As Integer = 0 To lboxWizard1BischikbareCalculators.SelectedItems.Count - 1
            lboxWizard1VerantwoordelijkeCalculators.Items.Add(lboxWizard1BischikbareCalculators.SelectedItems(i))
        Next i

        For i As Integer = lboxWizard1BischikbareCalculators.SelectedItems.Count - 1 To 0
            lboxWizard1BischikbareCalculators.Items.RemoveAt(lboxWizard1BischikbareCalculators.SelectedIndices(i))
        Next i
    End Sub

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Negatieve step toevoegen, als ik me niet vergis.
code:
1
2
3
For i As Integer = 10 To 0 Step -1
  ' bla bla
Next i

[ Voor 45% gewijzigd door Annie op 13-10-2005 12:48 ]

Today's subliminal thought is:


Verwijderd

Topicstarter
Annie schreef op donderdag 13 oktober 2005 @ 12:47:
Negatieve step toevoegen, als ik me niet vergis.
code:
1
2
3
For i As Integer = 10 To 0 Step -1
  ' bla bla
Next i
Klopt, weer wat geleerd :) Bedankt!
Pagina: 1