Jag har en combobox som jag har fyllt med "person" objekter. Har du satt egenskapen Value på din listitem? Om inte gör det. Om du har gjort det: se till att ditt value är unikt Med value så menas vilka objekt som är matade in i comboboxens item vektor? Du sätter aldrig egenskapen Value på ListItem, gör det. Dvs:ComboBox
Personobjekten har "personnummer" bland sina egenskaper.
ToString är Overidat till att visa personummer.
Så Comboboxen visar alla personnummer.
Allt bra så länge.
Under ComboBox1.SelectedIndexChanged anropas funktioner som använder sig av den valda personen.
Problemet kommer om jag har två personer med samma personnummer. Om jag en av dom, så väljs alltid den översta av dom. Inte på en gång, i början är det rätt - dom andra kontrollerna fylls med rätt persons värden
Men så fort jag lämnar Comboboxen så ändras värderna helt plötslitgt till den övre personens värde.
Ja, jag vet, irl så ska man inte ha samma personummer, så låt oss låtsas att det är namn eller något annat...
Tack för hjälpen, i förskott :)
PS: Jag försökte testa att fylla en combobox med {111,222,333,111,444}, och det är samma problem, om jag väljer index 4 så ändrar den själv till index 1. Varför? Hur hindrar jag det?Sv: ComboBox
Sv:ComboBox
Om ja: Ja, varje item är en unik sådan, det är bara den egenskapens värde som råkar ha samma värde.
Jag ska ge en påhittad (ickefungerande) kod för att göra ett exempel:
Class Bil
Public Färg
Public RegNr
Public Overrides Function ToString
Return RegNr
End Function
End Class
sedan:
Dim Bil1 as bil
Bil1.Färg = blå
Bil1.RegNr = abc
Dim Bil2 as bil
Bil2.Färg = Röd
Bil2.RegNr = abc
Combobox.items.add(Bil1)
Combobox.items.add(Bil2)
Om jag sen väljer Bil2, så blir bil Bil1 vald... :/Sv: ComboBox
Listboxen.Items.Add(new ListItem(bil.ToString(), bil.Id)); //Den andra parametern, id, måste alltid vara helt unik