发现我的回答有笔误,改在这了。你可以用ControlPaint.DrawReversableLine 来实现。 原理是call ControlPaint.DrawReversibleLine 可以画 line 在同一地方再call ControlPaint.DrawReversibleLine 可以把它擦掉而不影响原背景。 鼠标按下时,记下点0, 鼠标移动时记下点1 call ControlPaint.DrawReversableLine to draw frame(点0,点1) 鼠标再移动时记下点2 call ControlPaint.DrawReversableLine for (点0,点1) call ControlPaint.DrawReversableLine for (点0,点2)原理就是这样了。参考 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWindowsFormsControlPaintClassDrawReversibleLineTopic.asp希望你能达Net!
好奇心驱使我上msdn搜索了一下,果然查出一篇好文。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaskdr/html/askgui02172004.asp Dr. GUI 的回答也是建议用ControlPaint因为它最简单。
pen也不止一个...
我想,
当鼠标在picturebox上面拉框时,用一个矩形画出来。
当鼠标不停地移动时,这个矩形也不停地变化
已经是第三次回这种问题了。
原理是call ControlPaint.DrawReversibleLine 可以画 line
在同一地方再call ControlPaint.DrawReversibleLine 可以把它擦掉而不影响原背景。
鼠标按下时,记下点0,
鼠标移动时记下点1 call ControlPaint.DrawReversableLine to draw frame(点0,点1)
鼠标再移动时记下点2
call ControlPaint.DrawReversableLine for (点0,点1)
call ControlPaint.DrawReversableLine for (点0,点2)原理就是这样了。参考
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWindowsFormsControlPaintClassDrawReversibleLineTopic.asp希望你能达Net!
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaskdr/html/askgui02172004.asp
Dr. GUI 的回答也是建议用ControlPaint因为它最简单。