Sprache: C#
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();
}
}
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();
}
}
Alte URL:
/snippet/label-per-hover-erkennen/973
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.
[code]
private void label1_MouseHover(object sender, EventArgs e)
{
Label lbl = sender as Label;
if(lbl != null)
{
MessageBox.Show(lbl.Text);
}
}
[/code]
Danke für den Hinweis…
Das spart mir jetzt wirklich eine Menge Code