这个问题来自论坛提问,并没有什么难度,也不需要重画内容。当然还有一种方法是通过api发送WM_SysCommand 和SC_MOVE,也就是拖动无标题窗体的方法 ,但是效果没有这个好。
using
System;
using
System.Drawing;
using
System.Windows.Forms;
namespace
WindowsApplication2
{
public
partial
class
Form1 : Form
{
static
string
strDown
=
@"
AAACAAEAICAAAAsACQAwAQAAFgAAACgAAAAgAAAAQAAAAAEAAQAAAAAAAAIAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAf4AAAD8AAAA/AAAAPwAAAH+AAAD/gAAB/8AAA//AAAN/wAACf+AAAH
9gAADbQAAA2wAAAJsAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA////////////////////////////////////////////8AP///gH///4
B///+Af///AD///gA///wAH//4AB//+AAf//gAD//4AA///AAP//4AH//+AH///g
D////j////////////////////////////////////////////8=
"
;
static
string
strUp
=
@"
AAACAAEAICAAAAoACAAwAQAAFgAAACgAAAAgAAAAQAAAAAEAAQAAAAAAAAIAAA
AAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAf4AAAD8AAAA/AAAAPwAAAH+AAAD/gAAB/8AAA//AAAd/wAAGf+
AAAH9gAADbYAAA2yAAAZsAAAGbAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAA////////////////////////////////////////////8AP///
gH///4B///+Af///AD///gA///wAH//4AB//8AAf//AAD//4AA///gAP//4AD//
8AF///AB///5A////5///////////////////////////////////////8=
"
;
Cursor curUp
=
new
Cursor(
new
System.IO.MemoryStream(Convert.FromBase64String(strUp)));
Cursor curDown
=
new
Cursor(
new
System.IO.MemoryStream(Convert.FromBase64String(strDown)));
public
Form1()
{
InitializeComponent();
this
.pictureBox1.Cursor
=
curUp;
}
bool
bDragging
=
false
;
Point pClicked;
private
void
pictureBox1_MouseDown(
object
sender, MouseEventArgs e)
{
bDragging
=
true
;
pClicked
=
new
Point(e.X, e.Y);
this
.pictureBox1.Cursor
=
curDown;
}
private
void
pictureBox1_MouseMove(
object
sender, MouseEventArgs e)
{
if
(bDragging)
{
Point oMoveToPoint;
oMoveToPoint
=
this
.PointToClient(pictureBox1.PointToScreen(
new
Point(e.X, e.Y)));
oMoveToPoint.Offset(pClicked.X
*
-
1
, pClicked.Y
*
-
1
);
pictureBox1.Location
=
oMoveToPoint;
}
}
private
void
pictureBox1_MouseUp(
object
sender, MouseEventArgs e)
{
bDragging
=
false
;
this
.pictureBox1.Cursor
=
curUp;
}
}
}