怎么让控件跟随鼠标移动?

LixingTie 2006-05-16 12:00:37
我想要让一个PictureBox控件跟随着鼠标移动,可以实现吗?有没有什么简单的方法?
...全文
654 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
deninghe 2006-05-17
  • 打赏
  • 举报
回复
mark
coowoo 2006-05-16
  • 打赏
  • 举报
回复
是楼上的楼上的楼上
coowoo 2006-05-16
  • 打赏
  • 举报
回复
楼上的方法在鼠标移到其它控件上时就无效了。
要先Capture 或者 重载消息处理函数
Knight94 2006-05-16
  • 打赏
  • 举报
回复
参看
http://blog.csdn.net/knight94/archive/2006/04/14/663089.aspx

这里面是窗体随着鼠标移动,你进行修改即可。
Yellow198267 2006-05-16
  • 打赏
  • 举报
回复
正解~~~~~~~~~~~~~~~~~~~
jy757443 2006-05-16
  • 打赏
  • 举报
回复
最简单的有效的方法,请你记得给我分。



private void Form1_MouseMove(object sender, MouseEventArgs e)
{
this.pictureBox1.Location = new Point(e.X, e.Y);
}
hnhl 2006-05-16
  • 打赏
  • 举报
回复
利用消息循环来处理:
private const int WM_MOUSEMOVE = 0x0200;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_MOUSEMOVE)
{
button1.Location = System.Windows.Forms.Cursor.Position;
}
base.WndProc(ref m);
}
http://www.cnblogs.com/huangliang
LixingTie 2006-05-16
  • 打赏
  • 举报
回复
唉,算了,这个贴就当送份贴吧,说话要算数,送分。
我新开了一个帖子,还是关于这个问题,谁进来帮忙解决一下。谢谢
http://community.csdn.net/Expert/topic/4755/4755759.xml?temp=.7238733
liuqm 2006-05-16
  • 打赏
  • 举报
回复
傻什么?

问题讨论了才有意思!
LixingTie 2006-05-16
  • 打赏
  • 举报
回复
那焦点怎么固定在一个控件上呢?
LixingTie 2006-05-16
  • 打赏
  • 举报
回复
这个不行
canserly 2006-05-16
  • 打赏
  • 举报
回复
固定焦点在一个控件就可以了,JF
liujiwe79 2006-05-16
  • 打赏
  • 举报
回复
private bool blnState=false;

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
blnState=true;
ox=e.X;
oy=e.Y;

}


int ox=0;
int oy=0;
private void Form1_MouseMove(object sender, MouseEventArgs e)
{

try
{
if(blnState)
{
this.Location =new Point(this.Location.X-(ox-e.X),this.Location.Y-(oy-e.Y) );
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message );
}
}

private void Form1_MouseUp(object sender, MouseEventArgs e)
{
blnState=false;

}
LixingTie 2006-05-16
  • 打赏
  • 举报
回复
咦,对哦,就像coowoo说的那样,当鼠标进入其它控件时就不行了,谁有什么好的解决方法吗?
ilovejolly 2006-05-16
  • 打赏
  • 举报
回复
JF
copico 2006-05-16
  • 打赏
  • 举报
回复
JF
LixingTie 2006-05-16
  • 打赏
  • 举报
回复
呵呵,我真傻
送分啦,谁要分快来接
iamdavid0123 2006-05-16
  • 打赏
  • 举报
回复
顶楼上
dlzhangln 2006-05-16
  • 打赏
  • 举报
回复
在mousedown,mousemove,mouseup三个事件里进行处理,改变控件的location就OK了
private bool blnState=false;

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
blnState=true;
ox=e.X;
oy=e.Y;

}


int ox=0;
int oy=0;
private void Form1_MouseMove(object sender, MouseEventArgs e)
{

try
{
if(blnState)
{
this.Location =new Point(this.Location.X-(ox-e.X),this.Location.Y-(oy-e.Y) );
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message );
}
}

private void Form1_MouseUp(object sender, MouseEventArgs e)
{
blnState=false;

}

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧