Avatar billede fila Nybegynder
04. august 2005 - 10:35 Der er 8 kommentarer

listview og txtbox

Arbejder i C#.NET

Har en listview som er linket op til en database. Når man kører programmet kan man klikke på en linie i listview´en, hvorefter den bliver markeret. Ønsker således at vide hvordan man får den markerede tekst til at fremstå i f.eks. en textbox. Har prøvet at skrive textBox1.Text = listView1.SelectedItems.ToString();  (Burde bruge .Text men den findes ikke).
Avatar billede Syska Mester
04. august 2005 - 12:10 #1
private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
{
    foreach(ListViewItem i in listView1.Items)
    {
        if(i.Selected)
        {
            textBox1.Text = i.SubItems[0].Text.ToString();
        }
    }
}
Avatar billede Syska Mester
04. august 2005 - 12:11 #2
og så sætte den til at den ikke kan have MultiSelect = false

Så burde det kunne lade sig gøre....
Avatar billede pfp Nybegynder
04. august 2005 - 13:14 #3
Jeg vil ikke mene at det er nødvendigt at løbe samtlige items igennem.

Uden at have prøvet ville jeg mene noget ala det her kan gøre det:

textBox1.Text = listView1.Items[listView1.SelectedItem].ToString();
Avatar billede pfp Nybegynder
04. august 2005 - 13:22 #4
Opdagede lige at det ikke var en listBox, men en listView du arbejder med.

Nedenstående virker fint:
textBox1.Text = listView1.Items[listView1.SelectedItems[0].Index].Text;

Så slipper du for at skulle loope igennem hele collectionen. Det er selvfølgelig forudsat at du har multiselect = false, dermed vil det valgte altid have index 0 i samlingen.
Avatar billede Syska Mester
04. august 2005 - 13:55 #5
Ja, men så skal du try,catch da den først deselecter og derefter selecter, derfor får du 2 Event, og den første vil så være out-of-range.....

Tror det er smag og behag hvad man synes er bedst, min kan i hvert fald også bruge multiselect....
Avatar billede pfp Nybegynder
04. august 2005 - 14:00 #6
Okay det kan jeg nu ikke helt følge, men det kan da godt du har ret.
Avatar billede Syska Mester
04. august 2005 - 14:05 #7
Hvis du smider 3 items i en listview, og så skifter mellem dem med din kode... så får jeg en "System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values."

private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
{
    textBox1.Text = listView1.Items[listView1.SelectedItems[0].Index].Text;
}

og den er selvf sat på SelectedIndexChanged Eventen på listView kassen....

// ouT
Avatar billede pfp Nybegynder
04. august 2005 - 14:09 #8
Ja det var godt nok heller ikke den event jeg havde testet med, det kan jeg godt se at det skulle jeg nok have..
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