2010-08-22 9 views

Antwort

13

Ich werde nur die Benutzeroberfläche angreifen. Sie können es ausblenden, indem Sie die Spaltenbreite auf 0. Beispiel voran, wenn die ID in die 2. Säule gebunden ist:

public partial class Form1 : Form { 
    public Form1() { 
     InitializeComponent(); 
     listView1.Columns[1].Width = 0; 
     listView1.ColumnWidthChanging += listView1_ColumnWidthChanging; 
    } 

    private void listView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e) { 
     if (e.ColumnIndex == 1) { 
      e.NewWidth = 0; 
      e.Cancel = true; 
     } 
    } 
} 

Es ist nicht ganz ideal, kann der Benutzer Confuzzled erhalten durch den ‚Splitter‘ Cursor, der zeigt, wenn sie etwas zu weit rechts von der Trennlinie ist. Das ist sehr schwer zu beheben.

2

Wie/show Listenansicht Spalten ausblenden

C#, .NET Framework 3.5.

Es ist einfach, Listenansichtsspalten zu verstecken und anzuzeigen, wenn Sie die Listenansicht im "virtuellen Modus" verwenden. Im "virtuellen Modus" sind Sie dafür verantwortlich, die Listviewitems mit Daten zu füllen. Dies ermöglicht es, die korrekten Daten in die richtige Spalte zu stellen.

Lassen Sie mich zeigen:

Erstellen Sie ein Formular, und fügen Sie ein Listview-Steuerelement und ein Button-Steuerelement. Fügen Sie dem ListView-Steuerelement 3 Spalten hinzu. Setzen Sie die Eigenschaft "view" des ListView-Steuerelements auf "Details". Setzen Sie die "VirtualMode" -Eigenschaft des ListView-Steuerelements auf "True". Setzen Sie die Eigenschaft "VirtualListSize" des ListView-Steuerelements auf "100".

ein Bool Form hinzufügen:

private bool mblnShow = true; 

das Ereignis hinzufügen „RetrieveVirtualItem“ für die Listview-Steuerelement, und fügen Sie den folgenden Code ein:

ListViewItem objListViewItem = new ListViewItem(); 
objListViewItem.Text = "Item index: " + e.ItemIndex.ToString(); 
if (mblnShow) objListViewItem.SubItems.Add("second column: " +  DateTime.Now.Millisecond.ToString()); 
objListViewItem.SubItems.Add("third column: " + DateTime.Now.Millisecond.ToString()); 
e.Item = objListViewItem; 

Fügen Sie das „Click“ Ereignis für die Schaltfläche Steuerelement, und fügen Sie den folgenden Code hinzu:

mblnShow = !mblnShow; 
if (mblnShow && !this.listView1.Columns.Contains(this.columnHeader2)) this.listView1.Columns.Insert(1, this.columnHeader2); 
else if (!mblnShow && this.listView1.Columns.Contains(this.columnHeader2)) 
    this.listView1.Columns.Remove(this.columnHeader2); 

Starten Sie die Anwendung, und drücken Sie th e, um die zweite Spalte ein- und auszublenden.

Bitte beachten Sie, dass das Ausführen einer Listview im virtuellen Modus einen Fehler auslöst, wenn Sie Daten in die Elementauflistung stellen. Es gibt viel mehr Wissen über den virtuellen Modus, also empfehle ich, darüber zu lesen, bevor Sie es verwenden.

Verwandte Themen