提问鼠标点击选中图片的问题

alsjust 2008-03-24 02:57:20
我现在用以下方法在一个picturebox里画了两个image,接下来要判断鼠标点击是否选中image,选中了哪个image要怎么办?draw上去的image好像没有直接方法可以调用获得坐标什么的?
另外应该在哪个事件中触发判断?是picturebox的click事件么?还是另外自己写一个?谢谢


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dim g As Graphics
dim img1 As Image
dim img2 As Image

img1 = System.Drawing.Image.FromFile("..\image\1.jpg")
img2 = System.Drawing.Image.FromFile("..\image\2.jpg")
PictureBox1.BackgroundImage = Image.FromFile("..\image\back.jpg")
g = Graphics.FromImage(PictureBox1.BackgroundImage)
g.DrawImage(img1, 0, 50, 100, 150)
g.DrawImage(img2, 150, 50, 100, 150)

End Sub
...全文
104 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
alsjust 2008-03-24
  • 打赏
  • 举报
回复
好的,非常感谢,有问题再请教
晓轩 2008-03-24
  • 打赏
  • 举报
回复
g.fill矩形框(窗体的背景色,x,y,x1,y1)你试试
alsjust 2008-03-24
  • 打赏
  • 举报
回复
哦,谢谢

另外现在在picturebox里绘了img1和img2,如果我判断选中img1后要让它去除掉,就是点中img1后,picturebox就只剩img2了,那有没有直接在去除的方法?
还是必须重绘?
1. 将img1置空,然后重绘graphic 这样会报img1为空需要new来创建对象的错误,怎么解决?
或是
2. 重绘的时候不draw img1,将img1的位置空出来?
晓轩 2008-03-24
  • 打赏
  • 举报
回复
恩,是的
alsjust 2008-03-24
  • 打赏
  • 举报
回复
不好意思,你说判断矩形框吗,是指直接用我draw时候的坐标数字么?就是判断mousex在0,100之内,mousey在50,50+150之内?这个意思么?
alsjust 2008-03-24
  • 打赏
  • 举报
回复
对不起,我不太清楚,可以给各例示么?比如判断在img1内的语句?

另外现在在picturebox里绘了img1和img2,如果我判断选中img1后要让它去除掉,就是点中img1后,picturebox就只剩img2了,那有没有直接在去除的方法?
还是必须重绘?
1. 将img1置空,然后重绘graphic 这样会报img1为空需要new来创建对象的错误
2. 重绘的时候将img1的位置预留出来?
晓轩 2008-03-24
  • 打赏
  • 举报
回复
g.DrawImage(img1, 0, 50, 100, 150)
g.DrawImage(img2, 150, 50, 100, 150)
这两句不是你绘制图像的矩形框码。判断鼠标点是否在其内就哦了。
alsjust 2008-03-24
  • 打赏
  • 举报
回复
恩,那判断在img1里的方法是 mousex〉img1.location.x and mousex <img1.location.x+img1.width and mousey〉img1.location.y and mousey <img1.location.y+img1.height 这样?
晓轩 2008-03-24
  • 打赏
  • 举报
回复
对不起,刚才看错了。

如果你要判断是点击了哪个img。可以这样做
在picbox的mousemove里设置两个public变量Mousex,Mousey.实时获得鼠标的坐标点。当鼠标触发picbox_click事件时.判断Mousex,Mousey是否在你的img1或img2里即可。
alsjust 2008-03-24
  • 打赏
  • 举报
回复
判断鼠标坐标点是否在img1或img2内是通过比较鼠标坐标和img1、2的坐标来得到结果么?
那img1、2的坐标怎么获得呢?用我自己draw时候输入的位置坐标来判断?img1、2是后台代码生成的image对象好像不能直接用img1.location.x来获得坐标

你说用两个picturebox来做是什么意思呢?是说一个picturebox放一个图片?然后直接判断该picturebox的click事件?这需要在前台form上先预置的吧?如果后台通过代码生成不是跟image一样?而且我如果是有100个图片呢?
晓轩 2008-03-24
  • 打赏
  • 举报
回复
判断picturebox上的mouseMove事件,获得鼠标的坐标点是否在你的img1或img2里。即可


简单的办法是用两个picbox来做不是更简单?

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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