c#中拖动图片的例子

这个问题来自论坛提问,并没有什么难度,也不需要重画内容。当然还有一种方法是通过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=
" ;

CursorcurUp
= new Cursor( new System.IO.MemoryStream(Convert.FromBase64String(strUp)));
CursorcurDown
= new Cursor( new System.IO.MemoryStream(Convert.FromBase64String(strDown)));
public Form1()
... {
InitializeComponent();
this .pictureBox1.Cursor = curUp;
}


bool bDragging = false ;
PointpClicked;

private void pictureBox1_MouseDown( object sender,MouseEventArgse)
... {

bDragging
= true ;
pClicked
= new Point(e.X,e.Y);
this .pictureBox1.Cursor = curDown;
}


private void pictureBox1_MouseMove( object sender,MouseEventArgse)
... {
if (bDragging)
... {
PointoMoveToPoint;
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,MouseEventArgse)
... {
bDragging
= false ;
this .pictureBox1.Cursor = curUp;
}

}

}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值