Visual Studio C#: Tooltip in einer Listbox anzeigen

Um ein Tooltip in einer Listbox abhängig von der Position des Mauszeigers anzeigen lassen zu können, sind folgende Schritte erforderlich:

  1. Festlegen einer Klassenvariablen, die den zuletzt angezeigten Index ablegt, initialisiert mit -1, beispielsweise private int hoverIndex = -1;
  2. Erzeugen eines MouseMove Events für die Listbox. Bei einer Listbox mit Namen LstTest entsteht dabei folgende Methode: LstTest_MouseMove(sender object, MouseEventArgs e) { }
  3. Innerhalb dieser Methode zunächst die Indexposition ermitteln, abhängig von der aktuellen Mausposition. int newHoverIndex = LstTest.IndexFromPoint(e.Location);
  4. Anschließend prüfen, ob sich der Index geändert hat, wenn nicht Tooltipp setzen, der in unserem Beispiel als tt0 deklariert wurde:

    if (hoverIndex != newHoverIndex)
    {
    hoverIndex = newHoverIndex;
    if (hoverIndex > -1)
    {
    tt0.Active = false;
    string strListBoxWert = LstTest.Items[hoverIndex].ToString();
    // Dann etwas tun. Hier wird einfach dieser Wert dem Tooltip hinzugefügt.
    tt0.SetToolTip((Control)sender, strListBoxWert);
    tt0.Active = true;
    }
    }

Weitere Informationen zu unserem Unternehmen finden Sie auf unserer Website.

Kommentar schreiben

1 Kommentare.

  1. Sehr schöner Tipp. Danke für die pragmatische Lösung!
    Falls man aber doch mal die Listbox nur teilweise befüllt hat, bleibt der zuletzt angezeigte Tooltip stehen, wenn man über den leeren Bereich der Box ‚hovert‘.
    Dagegen hilft, die vorletzte Zeile ihres Beispiels folgendermaßen zu ergänzen:

    } else tt0.Active = false;
    }

Kommentar schreiben

Switch to our mobile site