在PictureBox中绘制列表树

时间:2013-03-18 23:27:30

标签: c# tree

我正在尝试绘制一棵树,但我找不到方法以便“分支”不重叠。我需要以前做过这件事的somone才能给出一个绝妙的主意。我尝试了一些不起作用的方法(或者我使用它们很差),所以我愿意接受任何建议。

这是我用来绘制树的代码:

public void drawNode(Graphics g, Node node, float x, float y)
            {
                Font sFont = new Font("Helvetica",13);
                if (node.Left == null && node.Right == null)
                {
                    g.DrawLine(Pens.Black, x, y, x, y + 20);
                    g.DrawString(node.litera.ToString(), sFont, Brushes.Blue, x, y + 25);
                }
                else
                {
                    if (node.Left != null)
                    {
                        g.DrawLine(Pens.Black, x, y, x - 20, y + 20);
                        drawNode(g, node.Left, x - 20, y + 20);

                    }
                    if (node.Right != null)
                    {
                        g.DrawLine(Pens.Black, x, y, x + 20, y + 20);
                        drawNode(g, node.Right, x + 20, y + 20);

                    }
                }
            }

除重叠问题外,一切都正确绘制。

0 个答案:

没有答案