Avatar billede sbruun Nybegynder
23. juli 2007 - 22:52 Der er 8 kommentarer og
1 løsning

Listview selecteditem

Jeg er forholdsvis ny i c#. Sidder med følgende problem:
Jeg har en listview, hvorfra jeg gerne vil indlæse en række date fra min database og skrive følgende ud: userId, fornavn & efternavn. Det skal så være muligt at markere den enkelte bruger og når dette sker skal der opdateres en række labels/textboxes.
Problemet opstår ved selve markeringen. I første omgang går det godt, jeg får det korrekte userid, og kan vha. dette hente den enkelte brugers oplysninger fra min database. Men foretager jeg mig en markering nummer 2, så går det galt og jeg får følgende fejl:

InvalidArgument=Value of '0' is not valid for 'index'.
Parameter name: index

Jeg indsætter items i listviewet på følgende måde:

string[] stringArray = new string[3];
stringArray[0] = u.UserId.ToString();
stringArray[1] = u.Namef;
stringArray[2] = u.Namel;
     
ListViewItem lvi = new ListViewItem(stringArray);
listViewUsers.Items.Add(lvi);

Jeg håndterer selectedindexchanged på følgende måde:

private void listViewUsers_SelectedIndexChanged(object sender, EventArgs e)
{
textBoxNamef.Text = listViewUsers.SelectedItems[0].Text;
}

Det sidste her benytter jeg kun til test lige pt. Men jeg tror fejlen grunder i måden jeg får fat i det selectede item på. Men har siddet tilpas længe med problemet. -Derfor dette indlæg.

Venlig Hilsen

Simon
Avatar billede staever Nybegynder
24. juli 2007 - 00:27 #1
har du prøvet at bruge den event der hedder OnClick istedet for SelectedIndexChanged? er ikke helt sikker på om det kan hjælpe, men kan måske være fordi den kører det event før den sætter indholdet af SelectedItems...
Avatar billede kalp Novice
24. juli 2007 - 00:45 #2
prøv



textBoxNamef.Text = listViewUsers.SelectedItems[listViewUsers.SelectedIndices[0]].Text;
Avatar billede Slettet bruger
24. juli 2007 - 15:03 #3
Du skal bruge listViewUsers.FocusedItem.Index 

Så får du index på den der er valgt

Husk at tjekke om nogen er valgt

if(listViewUsers.SelectedItems.Count > 0)
{
    textBoxNamef.Text = listViewUsers.FocusedItem.Text;
}
Avatar billede kalp Novice
31. juli 2007 - 23:50 #4
sbruun >> hvad så?
Avatar billede sbruun Nybegynder
09. august 2007 - 15:19 #5
if(listViewUsers.SelectedItems.Count > 0)
gjorde forskellen. Mange tak!
Avatar billede sbruun Nybegynder
09. august 2007 - 15:20 #6
kalp er velkommen til at oprette et svar.
Avatar billede kalp Novice
09. august 2007 - 20:04 #7
men du har brugt wb-freekill's kode ?
Avatar billede sbruun Nybegynder
09. august 2007 - 20:20 #8
ahh jo det er sandt. Det må være varmen. wb-freekill er velkommen tila t poste et svar;)
Avatar billede Slettet bruger
10. august 2007 - 10:05 #9
svar
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester