public partial class Form1 : Form {
public Form1() {
InitializeComponent();
treeView1.Nodes.Add("abc");
treeView1.Nodes.Add("bcd");
treeView1.Nodes[1].Nodes.Add("ppo");
treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText;
treeView1.DrawNode += treeView1_DrawNode;
}
private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e) {
Font f = e.Node.NodeFont != null ? e.Node.NodeFont : e.Node.TreeView.Font;
Size sz = TextRenderer.MeasureText(e.Node.Text, f);
Rectangle rc = new Rectangle(e.Bounds.X - 1, e.Bounds.Y, sz.Width + 2, e.Bounds.Height);
Color fore = e.Node.ForeColor;
if (fore == Color.Empty) fore = e.Node.TreeView.ForeColor;
// Have to indicate focus somehow, how about yellow foreground text?
if (e.Node == e.Node.TreeView.SelectedNode) {
fore = SystemColors.HighlightText;
if ((e.State & TreeNodeStates.Focused) != 0) fore = Color.Yellow;
}
Color back = e.Node.BackColor;
if (back == Color.Empty) back = e.Node.TreeView.BackColor;
if (e.Node == e.Node.TreeView.SelectedNode) back = SystemColors.Highlight;
SolidBrush bbr = new SolidBrush(back);
e.Graphics.FillRectangle(bbr, rc);
TextRenderer.DrawText(e.Graphics, e.Node.Text, f, rc, fore, TextFormatFlags.GlyphOverhangPadding);
bbr.Dispose();
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment