Veröffentlicht 10. August 200718 j Kann mir jemand bei diesem Fehler helfen ? "ListView2.Form1.ListViewItemSorter.get" ist nicht als abstrakt oder extern deklariert und muss daher einen Text deklarieren. using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Diagnostics; namespace ListView2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); string[] drives = Directory.GetLogicalDrives(); TreeNode node; foreach (string drv in drives) { node = treeView1.Nodes.Add(drv); if (node.Text == "A:\\") { node.ImageIndex = 0; node.SelectedImageIndex = 0; continue; } AllSubDirectories(node); if (drv == "C:\\") treeView1.SelectedNode = node; } } private void AllSubDirectories(TreeNode node) { DirectoryInfo[] arrDirInfo; DirectoryInfo dirinfo = new DirectoryInfo(node.FullPath); try { arrDirInfo = dirinfo.GetDirectories(); } catch { return; } foreach (DirectoryInfo info in arrDirInfo) { node.Nodes.Add(info.Name); } } private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) { foreach (TreeNode node in e.Node.Nodes) { AllSubDirectories(node); } } private TreeNode activeNode; private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { activeNode = e.Node; this.GetAllDirAndFileInfos(); } private void GetAllDirAndFileInfos() { listView1.Items.Clear(); ListViewItem item; DirectoryInfo dirInfo = new DirectoryInfo(treeView1.SelectedNode.FullPath); try { foreach(DirectoryInfo dir in dirInfo.GetDirectories()) { item = listView1.Items.Add(" " + dir.Name, 1); item.SubItems.Add(""); item.SubItems.Add(dir.LastWriteTime.ToString()); } foreach(FileInfo file in dirInfo.GetFiles()) { item = listView1.Items.Add(file.Name, 2); item.SubItems.Add(file.Length.ToString()); item.SubItems.Add(file.LastWriteTime.ToString()); string fileAttributes = ""; if ((file.Attributes & FileAttributes.Archive) != 0) fileAttributes += "A"; if ((file.Attributes & FileAttributes.Hidden) != 0) fileAttributes += "H"; if ((file.Attributes & FileAttributes.ReadOnly) != 0) fileAttributes += "R"; if ((file.Attributes & FileAttributes.System) != 0) fileAttributes += "S"; item.SubItems.Add(fileAttributes); } } catch { return; } } private void listView_ItemActivate(object sender, EventArgs e) { foreach (ListViewItem item in listView1.SelectedItems) { string path = treeView1.SelectedNode.FullPath; path = path + "\\" + item.Text; FileInfo fileInfo = new FileInfo(path); if (0 != (fileInfo.Attributes | FileAttributes.Directory)) { foreach (TreeNode node in activeNode.Nodes) { if (item.Text.Trim() == node.Text.Trim()) { treeView1.SelectedNode = node; treeView1.SelectedNode.Expand(); activeNode = node; treeView1.Refresh(); return; } } } else { try { Process.Start(path); } catch { return; } } } } private void schließenToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } private void löschenToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog dlgFileOpen = new OpenFileDialog(); dlgFileOpen.Title = "Öffnen"; dlgFileOpen.ShowDialog(); } private void schließenToolStripMenuItem_Click_1(object sender, EventArgs e) { this.Close(); } public class ListViewComparer : IComparer //Sortieren der Colums { private int col; private SortOrder order; public ListViewComparer(int col, SortOrder order) { this.col = col; this.order = order; } public int Compare(object x, object y) { ListViewItem item1, item2; item1 = (ListViewItem)x; item2 = (ListViewItem)y; if (this.order == SortOrder.Ascending) return item1.SubItems[col].Text.CompareTo(item2.SubItems[col].Text); else return item2.SubItems[col].Text.CompareTo(item1.SubItems[col].Text); } } public IComparer ListViewItemSorter { get; set;} private void Dateiname_ColumnClick(object sender, ColumnClickEventArgs e) { if (Dateiname.ListView.Sorting == SortOrder.Ascending) { Dateiname.ListView.Sorting = SortOrder.Descending; Dateiname.ListViewItemSorter = new ListViewComparer(e.Column, SortOrder.Descending); } else { Dateiname.ListView.Sorting = SortOrder.Ascending; Dateiname.ListViewItemSorter = new ListViewComparer(e.Column, SortOrder.Ascending); } } } }
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.