Problem mit ToolTip

amigian

Grünschnabel
Hallo Leute,

ich habe folgendes Problem mit dem ToolTip:

Ich binde dynamisch einen ToolTip an diverse Controls. Soweit - sogut. Leider sind diese teilweise sehr lang. Trotz AutoPopDelay auf int.MaxValue verschwindet der ToolTip nach ca. 6 Sekunden, trotz das ich auf dem Control mit dem Mauszeiger bleibe. Passiert genau das, lässt er sich auch nicht wieder anzeigen wenn er nicht neu erzeugt wird. Verlasse ich das Control vor dieser Zeit, kann der ToolTip sooft angezeigt werden wie man möchte.

Hab gleich noch eine Ergänzung. Ich würde gern noch ToolTips für die Reiter meiner Registerkarten erzeugen. Kennt da jemand einen Weg wie das geht?

Für jede Hilfe wäre ich sehr dankbar.

Tschau Steven
 
Zuletzt bearbeitet:
Ich binde dynamisch einen ToolTip an diverse Controls. Soweit - sogut. Leider sind diese teilweise sehr lang. Trotz AutoPopDelay auf int.MaxValue verschwindet der ToolTip nach ca. 6 Sekunden, trotz das ich auf dem Control mit dem Mauszeiger bleibe. Passiert genau das, lässt er sich auch nicht wieder anzeigen wenn er nicht neu erzeugt wird. Verlasse ich das Control vor dieser Zeit, kann der ToolTip sooft angezeigt werden wie man möchte.
Du kannst doch beim Tooltip selbst angebenen wie lange es sichbar bleiben soll und wann es erscheinen soll etc.
Schau dir mal die Eigenschaften zum Tooltip an.

Hab gleich noch eine Ergänzung. Ich würde gern noch ToolTips für die Reiter meiner Registerkarten erzeugen. Kennt da jemand einen Weg wie das geht?
Beim tooltip gibts die Methode SetTooltip (oder so ähnlich) damit kannst du ein Tooltip erzwingen. Sprich MouseEnter Ereignis auswerten und Tooltip erzwingen.
 
Danke für die schnelle Antwort, leider hiflt sie nicht wirklich weiter.

Du kannst doch beim Tooltip selbst angebenen wie lange es sichbar bleiben soll und wann es erscheinen soll etc.
Schau dir mal die Eigenschaften zum Tooltip an.

Wie ich bereits geschrieben habe setze ich den Parameter AutoPopDelay schon auf den maximalen Wert. Funktioniert nur leider nicht - warum auch immer.

Beim tooltip gibts die Methode SetTooltip (oder so ähnlich) damit kannst du ein Tooltip erzwingen. Sprich MouseEnter Ereignis auswerten und Tooltip erzwingen.

Hier ist das Problem, dass die Reiter von Registerkarten selbst keine Controls sind, und man daher auch keine Events dafür bekommt. Ich fürchte hier ist ein Workaround nötig, hab leider noch keine passende Idee. Problem ist auch, dass diese Reiter aufgrund mehrerer unterstützter Sprachen ihre Größe ändern.

Ich hoffe auf weitere Vorschläge.


Tschau Steven
 
Hier ist das Problem, dass die Reiter von Registerkarten selbst keine Controls sind, und man daher auch keine Events dafür bekommt. Ich fürchte hier ist ein Workaround nötig, hab leider noch keine passende Idee. Problem ist auch, dass diese Reiter aufgrund mehrerer unterstützter Sprachen ihre Größe ändern.
Hab früher mal sowas ähnliches gemacht (ungetester Code):
C#:
        private  void tabControl_MouseEnder(object sender, MouseEventArgs e)
        {
             int tabIndex = MouseOverTab(new Point(e.X,e.Y));

             if(tabIndex >= 0)
                  toolTip.Show("Mein Text",tabControl, e.X, e.Y);
             else
                  toolTip.Show(string.Empty,tabControl, e.X, e.Y);
        }

        private int MouseOverTab(Point mousePoint)
        {
            Rectangle rec;
            if (mousePoint.Y < this.ItemSize.Height) //ob über Reiter
            {
                for (int i = 0; i < TabPages.Count; i++)
                {
                    rec=GetTabRect(i);
                    if (rec.Contains(mousePoint))
                    {
                        return i;
                    }
                }
            }
            return -1;
        }
 
Zuletzt bearbeitet von einem Moderator:
Danke Spyke, grandioser Tip, funktioniert hervorragend.

Leider steht noch das Problem mit dem AutoPopDelay. Hab da auch in anderen Foren gesehen, dass dies wohl mal besser ging.
 
Zurück