2017-02-16 6 views
2

Ich habe Spalten in einem ListView. Ich ließ sie bewegen.Wie verhindert man, dass die Spalte in einem ListView verschoben wird?

Gerade jetzt möchte ich Spalte in Position 0 immer an dieser Position bleiben. Bisher stellte ich nur einen einfachen Code, der ausgelöst wird, wenn eine Spalte verschoben wird:

Is column the first one? 
If yes switch it back with the column it was just swapped. 

Allerdings habe ich die Bewegung verhindert werden mag, so dass Spalte 0 kann nicht bewegt werden. Gibt es eine Möglichkeit, dies zu tun? Eine Eigenschaft wie "Column Freeze"?

Antwort

1

Sie können ListView.ColumnReordered Ereignis behandeln. Überprüfen Sie, ob der neue oder alte Index gleich 0 ist, und brechen Sie die Neuanordnung der Spalten ab:

private void listView1_ColumnReordered(object sender, ColumnReorderedEventArgs e) 
{ 
    if (e.NewDisplayIndex == 0 || e.OldDisplayIndex == 0) 
     e.Cancel = true; 
} 
Verwandte Themen