两种方式:
1)private void HandleZoomDragEx(Graphics g)
{
if (Math.Abs(_dragStartPt.X - _dragEndPt.X) < 4 &&
Math.Abs(_dragEndPt.Y - _dragStartPt.Y) < 4)
{
return;
} using (Pen pen = new Pen(Color.Black, 1))
{
pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
pen.DashPattern = new float[2] { 3, 3 };
pen.DashOffset = 3;
int w, h;
w = Math.Abs(_dragStartPt.X - _dragEndPt.X);
h = Math.Abs(_dragStartPt.Y - _dragEndPt.Y); Point? ptStart = null;
if (_dragStartPt.X < _dragEndPt.X && _dragStartPt.Y < _dragEndPt.Y)
{
ptStart = _dragStartPt;
}
else if (_dragStartPt.X > _dragEndPt.X && _dragStartPt.Y > _dragEndPt.Y)
{
ptStart = _dragEndPt;
}
else if (_dragStartPt.X > _dragEndPt.X && _dragStartPt.Y < _dragEndPt.Y)
{
ptStart = new Point(_dragEndPt.X, _dragStartPt.Y);
}
else
{
ptStart = new Point(_dragStartPt.X, _dragEndPt.Y);
} g.DrawRectangle(pen, new Rectangle(ptStart.Value, new Size(w, h)));
}
}
2)
ControlPaint.DrawReversibleFrame(rect, BackColor, FrameStyle.Dashed);
1)private void HandleZoomDragEx(Graphics g)
{
if (Math.Abs(_dragStartPt.X - _dragEndPt.X) < 4 &&
Math.Abs(_dragEndPt.Y - _dragStartPt.Y) < 4)
{
return;
} using (Pen pen = new Pen(Color.Black, 1))
{
pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
pen.DashPattern = new float[2] { 3, 3 };
pen.DashOffset = 3;
int w, h;
w = Math.Abs(_dragStartPt.X - _dragEndPt.X);
h = Math.Abs(_dragStartPt.Y - _dragEndPt.Y); Point? ptStart = null;
if (_dragStartPt.X < _dragEndPt.X && _dragStartPt.Y < _dragEndPt.Y)
{
ptStart = _dragStartPt;
}
else if (_dragStartPt.X > _dragEndPt.X && _dragStartPt.Y > _dragEndPt.Y)
{
ptStart = _dragEndPt;
}
else if (_dragStartPt.X > _dragEndPt.X && _dragStartPt.Y < _dragEndPt.Y)
{
ptStart = new Point(_dragEndPt.X, _dragStartPt.Y);
}
else
{
ptStart = new Point(_dragStartPt.X, _dragEndPt.Y);
} g.DrawRectangle(pen, new Rectangle(ptStart.Value, new Size(w, h)));
}
}
2)
ControlPaint.DrawReversibleFrame(rect, BackColor, FrameStyle.Dashed);
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货