private TreeNodeCollection AddBand(BandBase band, TreeNodeCollection nodes) { if (band != null) { ObjectInfo info = RegisteredObjects.FindObject(band); string infoText = Res.Get(info.Text); infoText += ": " + band.Name; if (band is DataBand || band is GroupHeaderBand) { if (!String.IsNullOrEmpty(band.GetInfoText())) { infoText += " (" + band.GetInfoText() + ")"; } } TreeNode node = nodes.Add(infoText); int imageIndex = info.ImageIndex; node.ImageIndex = imageIndex; node.SelectedImageIndex = imageIndex; node.Tag = band; if (band == FLastSelectedBand) { tvBands.SelectedNode = node; } AddBand(band.Child, node.Nodes); return(node.Nodes); } return(null); }
protected override void OnDrawItem(DrawItemEventArgs e) { e.DrawBackground(); if (e.Index < 0) { return; } BandBase c = Items[e.Index] as BandBase; Image img = c == null?Res.GetImage(76) : RegisteredObjects.FindObject(c).Image; e.Graphics.DrawImage(img, e.Bounds.X + 2, e.Bounds.Y); using (Brush b = new SolidBrush(e.ForeColor)) { string text = ""; if (c == null) { text = Res.Get("Misc,None"); } else { text = Res.Get(RegisteredObjects.FindObject(c).Text); if (c is DataBand) { text += ": " + c.GetInfoText(); } else if (c is DataFooterBand) { text += ": " + c.DataBand.GetInfoText(); } else if (c is GroupFooterBand) { text += ": " + (c.Parent as GroupHeaderBand).GetInfoText(); } } e.Graphics.DrawString(text, e.Font, b, e.Bounds.X + 24, e.Bounds.Y + (e.Bounds.Height - ItemHeight) / 2); } }