private void GraphForm_Paint(object sender, PaintEventArgs e) { Point viewpoint = new Point(hScrollBar.Value, vScrollBar.Value - toolStripHeight); graph.Draw(e.Graphics, viewpoint); if (connectingPin != null && connectingPin.Connection==null) { Pen pen = otherPin==null ? Pens.Red : Pens.LightGreen; Point mstart = movingStart; mstart.X -= viewpoint.X; mstart.Y -= viewpoint.Y; Point mpos = mousepos; mpos.X -= viewpoint.X; mpos.Y -= viewpoint.Y; e.Graphics.DrawLine(pen, mstart, mpos); } if (selecting) { Point mstart = movingStart; mstart.X -= viewpoint.X; mstart.Y -= viewpoint.Y; Point mpos = mousepos; mpos.X -= viewpoint.X; mpos.Y -= viewpoint.Y; Rectangle rc = new Rectangle(Math.Min(mstart.X, mpos.X), Math.Min(mstart.Y, mpos.Y), Math.Abs(mstart.X - mpos.X), Math.Abs(mstart.Y - mpos.Y)); e.Graphics.DrawRectangle(Pens.Cyan, rc); } }