Feedback

C# - Label per Hover erkennen

Veröffentlicht von am 10/2/2008
(4 Bewertungen)
Wenn man mit der Maus über ein Label fährt, wird anhand der Mausposition und des Label-Location, das Label bestimmt.
private void label1_MouseHover(object sender, EventArgs e)
{
foreach (Control lbl in Controls)
{
if (lbl.Name.Contains("lbl"))
{
					//Errechnet die Position des Mauszeigers
//die Position über welchem Label sich der //Zeiger befindet

Point mousePosition = PointToClient(new Point(MousePosition.X, MousePosition.Y));

//Wenn der Zeiger innerhalb des Bereiches //des Labels ist
//über welchem er sich befindet

if (lbl.Location.X <= mousePosition.X && lbl.Location.Y <= mousePosition.Y && mousePosition.X <= lbl.Location.X + lbl.Width && mousePosition.Y <= lbl.Location.Y + lbl.Height)
{
MessageBox.Show(label1.text.ToString();
}
}
Abgelegt unter Label, Maus, Mausposition, Hover.

2 Kommentare zum Snippet

Kosmo schrieb am 10/2/2008:
Der "sender" aus den Methoden-Parametern ist bereits das Label, bei dem das MouseHover-Ereignis eingetreten ist. Es reicht vollkommen aus das sender-Objekt auf Label zu casten.


private void label1_MouseHover(object sender, EventArgs e)
{
Label lbl = sender as Label;
if(lbl != null)
{
MessageBox.Show(lbl.Text);
}
}
B# schrieb am 10/7/2008:
Danke für den Hinweis...
Das spart mir jetzt wirklich eine Menge Code
 

Logge dich ein, um hier zu kommentieren!