ListView i wyłączanie kolumn

0

Czy ilość kolumn dla ListView jest stała czy jest możliwe wyłączanie/ukrycie którejś z kolumn w trakcie pracy programu ? Jeśli jest to możliwe to jak to zrobić ?

0

mozna, sprobuj listView.Columns.Add ( .. ) i listView.Columns.Remove( .. ). Niestety to jak nazwy skazuja jest dodanie/usuniecie, a nie schowanie, wiec nalezy sobie je zapamietac na boku i .... to samo dla wszystkich itemow..

0

Wcześniej o tym myślałem, ale myślałem, że istnieje może jakiś inny sposób na to by po prostu je schować i odkrywać.
Dzięki za odpowiedź, na pewno spróbuję tak jak mówisz i dam znać jak wyszło.

0

Faktycznie ukrywać kolumn w LV się nie da. Ale można zastosować sztuczkę za zmianą ich rozmiaru:

private void Form1_Load(object sender, EventArgs e)
        {
            listView1.View = View.Details;
            listView1.Columns.Add("Column 1");
            listView1.Columns.Add("Column 2");
            listView1.Columns.Add("Column 3");

            ListViewItem lvi = new ListViewItem("Name");
            lvi.SubItems.Add("Attr 1");
            lvi.SubItems.Add("Attr 2");
            listView1.Items.Add(lvi);

            button1.Text = "Hide Column 2";
            button1.Width = 150;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if ( listView1.Columns[1].Width > 0 )
            {
                listView1.Columns[1].Width = 0;
                button1.Text = "Show Column 2";
            }
            else
            {
                listView1.Columns[1].Width = 100;
                button1.Text = "Hide Column 2";
            }
        }
0

Dzięki!
Obiecałem odpisać i odpisuję. Przepraszam, ze tak długo to trwało, ale potrzebowałem czasu na testy.

Próbowałem na dwa sposoby. Ten pierwszy odpadł z tego względu, że mimo wielu prób cały czas miałem jakieś błędy podczas aktualizacji danych. Robiły się różne rzeczy tylko nie aktualizacja :). Dlatego ze względu na komplikacje odpuściłem sobie ten sposób.

Drugi sposób polegający na zmianie szerokości kolumn działa bez zarzutu tylko, że...
...przesuwanie listy mającej 25 kolumn i "zwiniętej" tak, żeby została tylko jedna kolumna trwa prawie tyle samo.

Docelowo będzie można wyświetlać wybrane kolumny spośród około 50 możliwych do wyboru. Każda kolumna będzie miała maksymalnie po około 300 wierszy.
Najbardziej boli w tym sposobie zapotrzebowanie na procesor. Niezależnie ile kolumn się wybierze to będzie przesuwało się prawie tak jakby przesuwało się te wszystkie 50 kolumn. Testowałem to na dwóch komputerach.
Pierwszy ma Celerona Tualatina 1.1Ghz, 384MB Ram i płytę w wbudowaną grafiką. Na tym kompie działa to żałośnie. Przesuwanie tej listy jest ciężkie, a szybkie, płynne przesuwanie jest niemożliwe.
Na drugim komputerze wyposażonym w A64 1.8Ghz, 512MB Ram i normalną (niewbudowaną) grafiką, wszystko działa bardzo dobrze choć nie zupełnie idealnie. Znaczy to, kolumna zamiast się pojawić od razu to się "rysuje" jakieś 0.05 - 0.1 sek.

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