28. august 2005 - 20:45Der er
8 kommentarer og 1 løsning
Listbox text
Hejsa
Jeg har en winform, hvor jeg har en listbox. Der har jeg så listet nogle brugere med fornavn og efternavn, men er det så muligt at få den til at sende et id istedet for navnet ?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Jeg har nogle bruger med oplysninger som fornavn, efternavn, unikt nr. Så vil jeg gerne liste dem i listbox'en med "fornavn efternavn", men når jeg henter listbox.text vil jeg gerne have det unikke nr, hvis man kan sætte det med som et slags id.
Items i listboksen kan være objekter af en hvilkensomhelst type, og det felt der skal vises kan sættes med ListBox.DisplayMember. Så kan du f.eks.:
public struct NameAndId { public int Id; public string Name; }
Og et sted i din winform: // fyld listboks fra en datakilde, her illustreret ved manuelt at lave et enkelt element: NameAndId nai; nai.Id = 1; nai.Name = "Karl"; ListBox1.Items.Add(nai); ListBox1.DisplayMember = "Name";
Jeg antager at det er cirka det du vil opnå. Når du så ønsker at aflæse det valgte element skal du caste til et NameAndId objekt: if ( ListBox1.SelectedItem is NameAndId ) { NameAndId sel = (NameAndId)ListBox1.SelectedItem; // do stuff ... ... ... }
If sætningen er strengt taget ikke nødvendig hvis du kun fylder NameAndId objekter i din ListBox.
Hvad er problemet præcist ? Ovenstående adder jo kun elementer til listbox'en. Får du problemer når du henter data ud ? (Og i så fald, hvordan gør du det ?)
I øvrigt behøver du ikke struct'en NavnKundeNr når du allerede har defineret en klasse "Kunde" med de nødvendige egenskaber. Så du kan blot: foreach (Kunde kunde in kunder.HentKunde) { listBox1.Items.Add(kunde); }
Det har jeg lavet, men tænkte om den kunne spares væk.
Mange tak for hjælpen. Det virker tilfredsstillende nu.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.