如何实现将两个矩形连接在一起的线?目前,我有:
if (listBox1.Items.Count >= 2)
{
e.Graphics.DrawLine(Pens.AliceBlue, new Point(/*??*/), new Point(n._x, n._y));
}
第二个新点是我放置了新矩形的地方,但我不确定如何事先获得矩形的点。
我的矩形X和y存储在这样的列表中:
public BindingList<Node> nodeList = new BindingList<Node>();
我的主要目标是在我的每个矩形上都添加一条线。
例如:将一个矩形向下放置,什么也没发生,将另一个矩形放在下面,添加一条连接两者的线,添加第三个,添加一条线,将第二和第三个连接在一起。但是,如果我能得到一个,我可以尝试弄清楚如何不断添加这些行。
感谢您的任何帮助!
如果您有矩形列表,则可以用这样的线绘制它们:
void drawRectangles(Graphics g, List<Rectangle> list) {
if (list.Count == 0) {
return;
}
Rectangle lastRect = list[0];
g.DrawRectangle(Pens.Black, lastRect);
// Indexing from the second rectangle -- the first one is already drawn!
for (int i = 1; i < list.Count; i++) {
Rectangle newRect = list[i];
g.DrawLine(Pens.AliceBlue, new Point(lastRect.Right, lastRect.Bottom), new Point(newRect.Left, newRect.Top));
g.DrawRectangle(Pens.Black, newRect);
lastRect = newRect;
}
}
您可以插入一些智能代码以决定要连接哪个角落,但这取决于您。
仅适用于可能需要此代码示例的其他任何人。for循环应从0开始。
for (int i = 1; i < list.Count; i++)
{
//Code here
}
应该是:
for (int i = **0**; i < list.Count; i++)
{
//Code here
}