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);

この行を 2 つの部分に分割するにはどうすればよいですか... マウスで右クリックして contextMenuStrip から分割を選択すると、行が 3 つの部分に分割されます

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

私はあなたの描画ロジックについて十分に知りません。これが役立つかもしれません: 明示的に 2 つの線分を描画する代わりに、Lineそれに応じてリストを変更してみてください。(List<T>配列ではなく、だと思います)。

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

DrawLineこれで、ループ内でいつでも 1 回呼び出すことができます。

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 に答える