[C#]add items to listview

0

Jak dodac cos do listview'a ale do okreslonej kolumny:

//listView_main.Items.Add(matches_links[i].ToString());

taki kod dodaje ale do pierwszej kolumny w listview.

0

Kolejne kolumny to subitemy. Tutaj drugą kolumnę zwróci ci metoda Add albo możesz potworzyć je ręcznie i dodać w konstruktorze.

0

Oto przykład dla 3 kolumnowego listview

ListViewItem item = new ListViewItem(KOLUMNA1);
item.SubItems.Add(KOLUMNA2);
item.SubItems.Add(KOLUMNA3);
listView1.Items.Add(item);

raczej do jednej kolumny da się dodać tylko w taki sposób , że pozostałe zostawiamy puste.

0

Ok, dodawanie do kolumn dziala super, teraz jak edytowac poszczegolne itemy w listviewie

void Edit_items()
        {
            for (int i = 0; i < listView_main.Items.Count; i++)
            {
                listView_main.Items[i].ToString().Remove(1, 35);
            }

            for (int i = 0; i < listView_temp.Items.Count; i++)
            {
                listView_temp.Items[i].ToString().Replace("kot", "dom");
                listView_temp.Items[i].ToString().Remove(0, 1);
                listView_temp.Items[i].ToString().Remove(listView_temp.Items[i].ToString().Length - 1, 1);
            }

        }

taki kod niestety nie edytuje itemow ;/

0

Niestety nie mam możliwości sprawdzenia tego, ale proponowałbym zrobić coś takiego (powtarzam nie wiem czy zadziała)

                ListViewItem item = new ListViewItem(dane[i,1]);
                item.SubItems.Add(dane[i, 2]);
                item.SubItems.Add(dane[i, 3]);
                listView1.Items.Add(item);
ListViewItem item = listView1.Items[0];
// teraz powiedzmy, że chcemy w 2 zamienić tekst
item.SubItems[1] = "bla bla bla";
//i spowrotem dodajemy
listView1.Items[0] = item;
// nie wiem jak z usuwaniem ale może zadziała tak samo jak w przypadku listView czyli
// listView1.Remove(listView1.Items[0]);
item.Remove(item.SubItems[1]);

niestety nie mam możliwości sprawdzenia ale możliwe, że tak zadziała, też nie wiem czy możemy do sub item odwołać się przez np. SubItems[1]

0

Jesli dobrze to odczytalem to niestety nie dziala. Nie chodzi mi o usuwanie calych itemow ani o zmienianie ich calkowicie, tak jak w moim przykladzie chodzi mi o usuwanie kilku znakow na poczatku i koncu (.Remove)

0

ok problem z edycja itemow w pierwszej kolumnie rozwiazany

 void Edit_items()
        {
             for (int i = 0; i < listView_main.Items.Count; i++)
             {
                 listView_main.Items[i].Text = listView_main.Items[i].Text.Remove(0,listView_main.Items[i].Text.LastIndexOf("/"));
                 listView_main.Items[i].Text = listView_main.Items[i].Text.Remove(0, 1);
                 listView_main.Items[i].Text = listView_main.Items[i].Text.Remove(listView_main.Items[i].Text.Length - 1, 1);
             }

             for (int i = 0; i < listView_temp.Items.Count; i++)
             {
                 listView_temp.Items[i].Text = listView_temp.Items[i].Text.Replace("kot", "dom");
                 listView_temp.Items[i].Text = listView_temp.Items[i].Text.Remove(0, 1);
                 listView_temp.Items[i].Text = listView_temp.Items[i].Text.Remove(listView_temp.Items[i].Text.ToString().Length - 1, 1);
             } 
        }

Pozostaje problem z taka sama edycja ale w nastepnych kolumnach w listview'ie ;/ nie wiem jak sie do nich odniesc

0

Gdybyś przejrzał chociaż dostępne właściwości ListViewItem w Intellisense to zobaczyłbyś, że każdy item ma właściwość SubItems. A wcześniej nie działało ci dlatego, że (chociaż to już pewnie wiesz) metody String zwracają nową kopię.

1 użytkowników online, w tym zalogowanych: 0, gości: 1