C#DrawNode实现

时间:2014-10-10 13:10:12

标签: c# drawing nodes treenode

我遇到了Treeview的问题。我只将颜色方块放入节点文本中,所以我覆盖了函数" treeView1_DrawNode"。 我有很多节点,大约100个,我每5秒实现一次它们的文本。 问题在于实现。当我实现一个节点功能" DrawNode"正在为整个节点工作。它需要花费很多时间才能在屏幕上制作人工制品。

功能非常简单。

private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
    {
            Rectangle tempRect = new Rectangle(e.Bounds.X + 1, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
            if (e.Node.IsSelected)
            {
                e.Graphics.FillRectangle(Brushes.White, tempRect);
            }

            SolidBrush redBrush = new SolidBrush(e.Node.BackColor);
            e.Graphics.FillRectangle(redBrush, e.Bounds.X + 2, e.Bounds.Y + 2, 12, 12);
            e.Graphics.DrawRectangle(Pens.Aqua, e.Bounds.X + 2, e.Bounds.Y + 2, 12, 12);

            tempRect = new Rectangle(e.Bounds.X + 12, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
            TextRenderer.DrawText(e.Graphics,
                                   e.Node.Text,
                                   e.Node.TreeView.Font,
                                   tempRect,
                                   e.Node.ForeColor);
    }

0 个答案:

没有答案