c# 当在pictureBox上单击时响应鼠标事件(着急,在线等)

MUTOUYIHAO 2009-12-20 04:23:03
本来是想实现用鼠标拖动pictureBox中的图片,但是当鼠标在图片上单击时没反应,在窗体的空白处却有反应。代码如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown);
this.MouseDown +=new MouseEventHandler(pictureBox2_MouseDown);
}
private void pictureBox2_MouseDown(object sender, MouseEventArgs e)
{
//wselected = true;
//p.X = e.X;
//p.Y = e.Y;
MessageBox.Show("down");
}
}
怎样才能使当鼠标在图片上单击时有反应啊?更够给出移动图片的全部代码就更好了,整一天了全糊涂了,比较着急……
贴出全部代码或发个工程到383579774@qq.com者追加分数。谢谢
...全文
318 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zl194 2009-12-20
  • 打赏
  • 举报
回复
路过
Noah_King 2009-12-20
  • 打赏
  • 举报
回复
a,b,c,d全局变量,保存图像位置
Noah_King 2009-12-20
  • 打赏
  • 举报
回复

public void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{

if (pictureBox1.Image != null)
{
a = e.Location.X;
b = e.Location.Y;
pictureBox1.Cursor = System.Windows.Forms.Cursors.Hand;
}
}


private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{


pictureBox1.Cursor = System.Windows.Forms.Cursors.Default;
c = e.Location.X;
d = e.Location.Y;
locateX += (c - a);
locateY += (d - b);
Graphics g = pictureBox1.CreateGraphics();
g.Clear(SystemColors.Control);
g.DrawImage(pictureBox1.Image, locateX, locateY,
pictureBox1.Image.Width , pictureBox1.Image.Height);
g.Dispose();


}

a和b全局变量
happyer_longlong 2009-12-20
  • 打赏
  • 举报
回复
应该在 PictureBox 这个控件中的 MouseClick 事件里面编程 ,你的好像是 Form 里面的MouseDown()事件当然 在空白区域有效了
lovelan1748 2009-12-20
  • 打赏
  • 举报
回复
写在MouseMove事件里试试
if(右键点下)

110,534

社区成员

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

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

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