C#:可拖动控件

练手时发现有一软件上有可以拖动的图片
感觉可能是一个可以拖动的控件,于是乎想自己写一个看看
无奈很菜,google一下
得参考一篇
C#创建可以随意拖动的控件(http://blog.sina.com.cn/s/blog_4a1f2422010004hm.html
跟着学习,自己模仿了一个
新建工程,c#窗口程序,
添加一Button控件,名之button1
对此button1处理三个事件:MouseDown、MouseUp、MouseMove
关键代码如下:
 public partial class Form2 : Form { Point oriPoint;//保存原有位置 public Form2() { InitializeComponent(); } private void button1_MouseDown(object sender, MouseEventArgs e) { //记住原来的位置,这里是鼠标相对于button1的位置 oriPoint = e.Location; } private void button1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { //这个地方记录的是button1对于窗口的位置 Point newPos = button1.Location; //适当调整button1的位置 newPos.Offset(e.Location.X - oriPoint.X, e.Location.Y - oriPoint.Y); //保证拖动后控件还在当前窗体的可见范围内 if (new Rectangle(new Point(0, 0), this.Size).Contains(newPos)) { button1.Location = newPos; } else { MessageBox.Show("你太狠了,出界了"); } } } private void button1_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { //这个地方记录的是button1对于窗口的位置 Point newPos = button1.Location; //适当调整button1的位置 newPos.Offset(e.Location.X - oriPoint.X, e.Location.Y - oriPoint.Y); //保证拖动后控件还在当前窗体的可见范围内 if (new Rectangle(0,0,this.Width - button1.Width, this.Height - button1.Height*5/2).Contains(newPos)) { button1.Location = newPos; } else { MessageBox.Show("你太狠了,出界了"); } } } }  

 其实处理了MouseMove事件,MouseUp事件就没必要处理了

转载于:https://www.cnblogs.com/xkxjy/archive/2009/04/27/2078103.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值