protected override void OnPaint(PaintEventArgs e) { int count = 0; Items = new Items(); if (data != null) { PIDL pidl = (PIDL)data.Clone(); while (!pidl.IsDesktop) { Items.Add(new Item(pidl)); pidl = (PIDL)pidl.GetParentFolder().Clone(); count++; } pidl.DisplayName = "My Computer"; Item item = Items.Add(new Item(pidl)); item.Rectangle = new Rectangle(0, 3, 16, 16); item.X = 0; item.Y = 3; item.Hotspot = new Rectangle(17, 3, 17, 16); pidl.Dispose(); int index = sysimagelist.IconIndex(data.Pidl); e.Graphics.DrawImage(sysimagelist.Icon(index).ToBitmap(), new Rectangle(3, 3, 16, 16)); DrawItems(e.Graphics); } Rectangle rect = ClientRectangle; rect.Width--; rect.Height--; e.Graphics.DrawRectangle(RectPen, rect); base.OnPaint(e); }
public void Load(TreeNode parent) { this.TreeNode = parent; if (!Visible) { return; } currentObject = null; disk = null; treemap = null; if (root != null) { root.Dispose(); } root = null; if (diskReader != null) { diskReader.Cancel = true; } diskReader = null; if (copy != null) { copy.Dispose(); } copy = null; root = (PIDL)((PIDL)parent.Tag).Clone(); if (root.PhysicalPath.Length > 0) { using (Graphics g = Graphics.FromImage(Image)) { g.Clear(Color.White); WriteCaption(g, "Loading " + " " + root.DisplayName, new Rectangle(0, 0, this.Width, this.Height), Color.Black, true, 30f); this.Invoke(new UpdateScreenCallback(this.Refresh), null); } diskReader = new DiskReader(root.PhysicalPath, null); diskReader.DiskReadComplete += DiskReader_DiskReadComplete; diskReader.Progress += DiskReader_Progress; } }