Hallo liebe Community,
bis eben habe ich verzweifelt an den ListView Methoden rumgespielt - aber so langsam vergeht mir die Lust daran.
Ich hab einen ListView, in dem viele Einträge sind. Mehr wie 1000 Items. Das Anzeigen funktioniert einwandfrei. Jedoch hab ich einen kleinen Schönheitsfehler den ich gerne entfernen würde. Lade ich die Datenbank erneut in das ListView, baut sich der Balken auf der rechten Seite auf, bzw. zieht sich zusammen und fügt langsam die Items hinzu. Nun hätte ich gerne, dass das ListView quasi verschwindet. Jedoch nicht alles - das wäre zu einfach. Ich hätte gerne das man das ListView, sowie alle Spalten sieht. Die Einträge sollen jedoch nur einmal schnell hineingezeichnet werden.
Mir ist der Anschein, dass der Inhalt des ListViews nach jedem eintragen erneut gezeichnet wird und das Bild deshalb flackert?!
Kann mir jemand helfen?
Hier ist der Code, mit dem ich das ListView aktualisiere:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| private void drawListViewSearchInformations(SqlDataReader dataReader) { try { this.mediathekListView.Select(); this.mediathekListView.Clear();
this.getColumn();
while (dataReader.Read()) { ListViewItem listViewItem = this.mediathekListView.Items.Add(dataReader["IDTrack"].ToString()); listViewItem.SubItems.Add(dataReader["track"].ToString()); listViewItem.SubItems.Add(dataReader["title"].ToString()); listViewItem.SubItems.Add(dataReader["artist"].ToString()); listViewItem.SubItems.Add(dataReader["album"].ToString()); listViewItem.SubItems.Add(dataReader["comment"].ToString()); listViewItem.SubItems.Add(dataReader["genre"].ToString()); listViewItem.SubItems.Add(dataReader["year"].ToString()); listViewItem.SubItems.Add(dataReader["tracklength"].ToString()); listViewItem.SubItems.Add(dataReader["tracklocation"].ToString()); listViewItem.SubItems.Add(dataReader["trackvolume"].ToString()); listViewItem.SubItems.Add(dataReader["tagversion"].ToString()); listViewItem.SubItems.Add(dataReader["samplingrate"].ToString()); listViewItem.SubItems.Add(dataReader["channelmode"].ToString()); listViewItem.SubItems.Add(dataReader["layerversion"].ToString()); listViewItem.SubItems.Add(dataReader["bitrate"].ToString()); } this.mediathekListView.Update(); dataReader.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } |