我有一个包含只有两件事情形式,一个图片框和标签。鼠标点击位置上的PictureBox未检测到在标签
我添加了一个鼠标点击事件处理程序的图片框。
this.pictureBox1.MouseClick += picture_MouseClick;
在处理程序内我需要检查鼠标单击的位置是否在标签的范围内。为此,我使用鼠标事件位置并检查该位置是否在标签的范围内。
private void picture_MouseClick(object sender, MouseEventArgs e)
{
if (label1.Bounds.Contains(e.Location))
{
MessageBox.Show("FOUND YOU!");
}
}
我预计这个工作,因为它似乎很容易。然而,导致所显示的消息框点击位置(图像中的橙色框)被向下偏移,并以标签的右侧。
这是因为鼠标事件是相对于图片框和标签范围是相对于表?或相反亦然?
顺便说一句,您在图像中看到的标签在运行时隐藏。我只是将标签用作知道用户是否点击某个特定位置的“黑客”方式。
public Form1()
{
InitializeComponent();
this.label1.Visible = false;
this.pictureBox1.MouseClick += picture_MouseClick;
}
(我试过减去EX中标签的宽度和EY标签的高度,但似乎并没有工作。)
谢谢
月
如果你尝试点击标签,PictureBox的Click事件不会触发。 – SLaks
啊,但这是诀窍!我实际上在运行时隐藏了标签。我只是使用标签的边界来知道鼠标点击的位置。在这之后,我真的很喜欢HTML图像地图,我正在使用隐藏标签的位置来检查鼠标点击的位置。 –