我遇到了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);
}