Archief - VB.NET listbox to listview

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

KaTaBy

Legacy Member
Hello mensen,

enkele weken geleden vond ik hier, na toch al effe gezocht te hebben, eindelijk een sluitend antwoord op een probleem in VB.NET.

Waarvoor dank.


Vandaag stuit ik opnieuw op een klein probleem waar ik niet meteen een goede oplossing voor vind. De situatie is als volgt;

Op een windows form staat een listbox (listbox1 om het makkelijk te houden). Wanneer ik op de knop shuffle klik worden alle items in deze listbox van plaats verwisseld (random). So far, so good. Tot hier lukt me alles.

Ik zou echter willen dat wanneer je op een andere button klikt (laat ons deze button "generate" noemen) alle items overgebracht worden vanuit de listbox1naar een listview in dezelfde form (listview1).

Deze listview bestaat uit 3 kolommen (team, speler1 en speler2).

Zoals jullie begrijpen is het dus de bedoeling dat bij het klikken op de "generate" knop,
- op de eerste rij van de listview onder de kolom team "team + nr" komen te staan (dit lukt)
- Onder de 2de kolom komt dan een het eerste item uit de listbox1.(index 0)
- Onder de 2de kolom komt het tweede item uit de listbox(index1)

Kunnen jullie me hierbij helpen door eventueel een voorbeeld te geven?

Bedankt alvast

Een ander vraagje uit interesse.
Indien je nu wenst resultaat als hierboven te bereiken maar dan door 2 geselecteerde items uit de listbox over te zetten naar de listview kolommen (geselecteerde items 1 en 2 uit listbox naar kolommen 2 en 3 in de listview), hoe zou je dit uitvoeren?

Mee

Legacy Member
Ik vermoed dat je met "- Onder de 2de kolom komt het tweede item uit de listbox(index1)" de 3de kolom bedoelt?

Om een volledige rij aan de ListView toe te voegen gebruik ik deze regel:
Code:
listView.Items.Add(new ListViewItem(new string[] { team, speler1, speler2}))
waar de variabelen team, speler1 en speler2 nogal logisch zijn.

Zet deze regel dan in een forlus en je bent er normaal gezien:
Code:
for(int i = 0; i < listbox1.Items.Count; i += 2)
{
    string team = "Bla"; //ik weet niet waar je het team van haalt
    string speler1 = listbox1.Items[i].ToString(); //niet zeker of de ToString nodig is
    string speler2 =  listbox1.Items[i+1].ToString();
    listView.Items.Add(new ListViewItem(new string[] { team, speler1, speler2}))
}

Het kan ook goed zijn dat ik de "opgave" verkeerd verstaan hebt, want volgens mij heb je nogal wat rijen en kolommen door elkaar gegooid ;).

De geselecteerde items overzetten doe je door listbox1.SelectedItems te gebruiken ipv listbox1.Items.

edit: Oh ja, dit is in C# geschreven ipv VB.NET, maar ik vermoed dat je dat zelf wel zal kunnen omzetten. Je zal ook een controle moeten inbouwen dat je een even aantal items hebt in de listbox, anders gaat dat niet uitkomen...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan