0

我画一条线

Graphics gg = this.CreateGraphics();
Pen pen = new Pen(Color.Blue, 2);
gg.DrawLine(pen, Lines[0].StartPoint.X,  Lines[0].StartPoint.Y, 
                 Lines[0].EndPoint.X, Lines[0].EndPoint.Y);

我怎样才能把这条线分成两部分......当我用鼠标右键单击并从 contextMenuStrip 中选择 split 时,这条线分成三部分

gg.DrawLine(pen, Lines[0].StartPoint.X,  Lines[0].StartPoint.Y, 
                 mouseposition.X, mouseposition.Y);
gg.DrawLine(pen, mouseposition.X, mouseposition.Y,
                 Lines[0].EndPoint.X, Lines[0].EndPoint.Y);
4

1 回答 1

0

我对你的绘图逻辑不太了解。也许这会有所帮助:与其明确地绘制两条线部分,不如尝试Line相应地更改您的列表。(我假设它是一个List<T>,而不是一个数组)。

var line = new Line{ StartPoint = mouseposition, EndPoint = Lines[0].EndPoint };
Lines.Add(line);
Lines[0].EndPoint = mouseposition;

现在,您始终可以DrawLine在循环中调用一次。

Graphics gg = this.CreateGraphics();
Pen pen = new Pen(Color.Blue, 2);

foreach (Line line in Lines) {
    gg.DrawLine(pen, line.StartPoint.X, line.StartPoint.Y,
                     line.EndPoint.X, line.EndPoint.Y);
}
于 2012-07-18T11:10:12.560 回答