2012-07-14 27 views
7

Odnośnie listbox do migracji ListView.Wypełnianie wielokąta listy widoków

Witaj.

Mam listbox dodaję wpisy podobne do tego:

1; treść

gdzie 1 oznacza zawsze int a zawartość jest zawsze ciągiem. Mogę uzyskać dostęp do każdego z nich osobno.

Teraz chcę efektem mają być sortowane malejąco, czyli:

1;content 
4;content2 
2;content3 

=>

4;content2 
2;content3 
1;content 

Jak to nie wygląda dobrze, chcę użyć zamiast ListView. Tak:

Frequency | Content 
=============== 
4 | content2 
2 | content3 
1 | content 

Problem jest własnością tabelarycznych wydaje się nie istnieć, wszystkie wpisy są wprowadzane w jak symbole w pogrupowanych w Eksploratorze. Mam także problemy z "dotarciem" do drugiej kolumny (treści), tj. Widzę tylko 4,2,1.

Jak mogę przygotować i wypełnić listę w C# .net 4 do tego?

Odpowiedz

30

Aby ustawić ListView w trybie szczegóły:

 listView1.View = View.Details; 

Następnie skonfigurować dwie kolumny:

 listView1.Columns.Add("Frequency"); 
     listView1.Columns.Add("Content"); 

Następnie dodać swoje pozycje:

 listView1.Items.Add(new ListViewItem(new string[]{"1", "content"})); 
     listView1.Items.Add(new ListViewItem(new string[]{"4", "content2"})); 
     listView1.Items.Add(new ListViewItem(new string[]{"2", "content3"})); 

Zdecydowałem się użyć przeciążenia konstruktora ListViewItem, który pobiera tablicę znaków reprezentującą wartości kolumn. Ale są 22 przeciążenia! Przejrzyj następnie i znajdź ten, który najlepiej pasuje do Twojej sytuacji.

Aby ustawić automatyczne sortowanie elementów:

 listView1.Sorting = SortOrder.Descending; 
+0

Thanks you so much! To jest TYLKO odpowiedź, którą odkryłem, że w rzeczywistości ma sens! Dokładnie to, czego potrzebowałem.(Wypełniam listview z XML) Jesteś teraz dla mnie bohaterem. Weź udział w konkursie :) – NoobishPro

+1

Również do formatowania możesz użyć 'listView1.GridLines = true;', wyrównanie 'listView1.Columns [0] .TextAlign = HorizontalAlignment.Center;'. Aby zobaczyć szerokość kolumn, zobacz tutaj: http://stackoverflow.com/questions/1257500/c-sharp-listview-column-width-auto#16955210. – SharpC

+0

Działa jak czar, w końcu znalazł odpowiedź po tak długim czasie haha, dziękuję człowieku ♥ –

1

Zdaję sobie sprawę, że ten post jest ponad rok stary, ale myślałem, że może to być przydatne, napisałem artykuł lat temu o użyciu ListView jako wielokolumnowy ListBox, który zawiera kod do wypełnienia go. Artykuł jest dostępny tutaj (Using a ListView as a multicolumn ListBox) jest napisany przy użyciu VB.NET, ale kod jest prawie dokładnie taki sam dla C#, mogę przepisać go za pomocą C# i doda link do tego, ale to będzie inny czas.

Nadzieja to pomaga, jeśli nie krępuj się daj mi znać :)

0

Aby dodać nagłówki lista przeglądanie i dodawanie elementów do widoku listy, spróbuj tego kodu:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     Lstv1.Columns.Add("Paramname", CInt(Lstv1.Width/2)) 
     Lstv1.Columns.Add("Paramorder", CInt(Lstv1.Width/2)) 
    End Sub 


Private Sub appendlistview(ByVal Paramname As String, ByVal Paramorder As String) 

    Dim newitem As New ListViewItem(Paramname) 
    newitem.SubItems.Add(Paramorder) 

    Lstv1.Items.Add(newitem) 

End Sub 


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdd.Click 

    Call appendlistview(TextBox1.Text, TextBox2.Text) 
End Sub 
+0

Jest to otagowane C# choć nie VB. – Nyerguds

Powiązane problemy