Feedback

Label per Hover erkennen

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();
}
}

2 Kommentare

  1. 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]