void toolStripButton1_Click(object sender, EventArgs e) { listView1.Items.Clear(); if (breadcrumbsBar.Items.Count > 1) { breadcrumbsBar.Items.Remove(breadcrumbsBar.Items.OfType <ToolStripItem>().Last()); var dir = breadcrumbsBar.Items.OfType <ToolStripItem>().Last().Tag as ShiftDirectory; _currentDirectory = dir; listView1.DisplayShiftFolder(dir); } else { breadcrumbsBar.Items.Clear(); listView1.ShowDrivesList(); } }
void listView1_MouseDoubleClick(object sender, MouseEventArgs e) { var hit = listView1.HitTest(e.Location); if (!(hit.Item.Tag is ShiftDirectory dir)) { return; } listView1.Items.Clear(); listView1.DisplayShiftFolder(dir); _currentDirectory = dir; breadcrumbsBar.Items.Add(new ToolStripButton(dir.Name) { Tag = dir }); }
public static void DisplayShiftFolder(this ListView list, ShiftDirectory dir) { var dirs = dir.OfType <ShiftDirectory>().ToArray(); for (var i = 0; i < dirs.Length; i++) { list.Items.Add( new ListViewItem { Text = dirs[i].Name, ImageIndex = i, StateImageIndex = i, ImageKey = dirs[i].Guid.ToString(), Tag = dirs[i] }); list.StateImageList.Images.Add(dirs[i].Guid.ToString(), Resources.iconFileOpener_fw); } var items = dir.OfType <ShiftFile>().ToArray(); for (var i = 0; i < items.Length; i++) { list.Items.Add( new ListViewItem { Text = items[i].Name, ImageIndex = i, StateImageIndex = i, ImageKey = items[i].Guid.ToString(), Tag = items[i], }); list.StateImageList.Images.Add(items[i].Guid.ToString(), items[i].Icon ?? Resources.iconFileOpener_fw); } }