急!!!!!!!!!!在图片上如何响应mousehover事件

yin4130796 2006-09-23 05:14:47
pictureBox1.Image = Image.FromFile("01.jpg");

在picturebox上如何响应mousehover事件呢,我是想在鼠标停在图片上的时候画一个矩形框。之前用mousemove事件,能正确响应,但是鼠标一停,画的矩形就没了,鼠标移动过程中也一直在闪,用mousehover事件,根本就没反应 救救急吧

private void PictureBox1_MouseHover(object sender, EventArgs e)
{

newPicBox.Invalidate();
Graphics g1 = newPicBox.CreateGraphics();

Pen p1 = new Pen(Color.Red);

g1.DrawRectangle(p1, MousePosition.X, MousePosition.Y , 90, 120);
p1.Dispose();
g1.Dispose();

}





private void PictureBox1_MouseMove(object sender, MouseEventArgs e)
{

if (e.Button == MouseButtons.Left)
{

newPicBox.Invalidate();
Graphics g1 = newPicBox.CreateGraphics();

Pen p1 = new Pen(Color.Red);

g1.DrawRectangle(p1, e.X - 90, e.Y - 120, 90, 120);
p1.Dispose();
g1.Dispose();
}
}
...全文
247 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yin4130796 2006-09-24
  • 打赏
  • 举报
回复
void PictureBox1_Paint(object sender, PaintEventArgs e)
{
newPicBox.Invalidate();
Graphics g1 = e.Graphics;

Pen p1 = new Pen(Color.White);

g1.DrawRectangle(p1, mouse_x - 90, mouse_y - 120, 90, 120);

}



private int mouse_x;
private int mouse_y;


private void PictureBox1_MouseMove(object sender, MouseEventArgs e)
{

if (e.Button == MouseButtons.Left)
{
mouse_x = e.X;
mouse_y = e.Y;

}
}
搞定了,在paint事件中写就可以了,谢谢大家,可以结了
懒是一种态度 2006-09-24
  • 打赏
  • 举报
回复
用js实现非常简单啊
http://community.csdn.net/Expert/topic/5042/5042878.xml?temp=7.012576E-02
yin4130796 2006-09-24
  • 打赏
  • 举报
回复
能给点代码吗,大概的就行,这样看着不太明白
jointan 2006-09-23
  • 打赏
  • 举报
回复
1,这个问题不能用MouseHover事件来处理,因为MouseHover只发生Mouse进入Box的时侯,再移动就不会触发了.
2,MousePosition.X, MousePosition.Y是屏幕坐标,不是你newPicBox的坐标
3,你如果用WindowsSDK写过程序,就会明白,Windows中的在显示器上显示内容,只有一个方法(处理WM_PAINT时自绘),所以必须在Paint事件中绘,在Control.CreateGraphics绘图的动作,如果要想正常显示,必须在Paint事件中重现你的绘图动做.所以,任何抛弃Paint事件的绘图,不可能会有出路(设置背景图片,基类也是在OnPaint中处理的)

110,535

社区成员

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

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

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