我有一個包含只有兩件事情形式,一個圖片框和標籤。鼠標點擊位置上的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圖像地圖,我正在使用隱藏標籤的位置來檢查鼠標點擊的位置。 –