这个问题来自论坛提问,并没有什么难度,也不需要重画内容。当然还有一种方法是通过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;
}
}
}
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!