Zeigt ein tooltip auf einen nicht-fokussierten ToolStripItem
ToolStripItems Karte Aktiv markieren, wenn Sie mit der Maus über Sie, auch wenn die form, die Sie sind nicht im Fokus. Sie tun nicht, jedoch, zeigen die tooltips, es sei denn, die form steht im Vordergrund. Ich habe gesehen, das Tooltip in der Statusleiste 'klicken-wenn' hack. Wer weiß, wie man einen ToolStripButton-show tooltip angezeigt, wenn das übergeordnete Formular nicht im Fokus?
Dank!
- Warum wollen Sie dies tun? Der bug ist eher die aktive Verfolgung, wenn die form ist nicht fokussiert.
- Ich schuf einen schwimmenden / always-on-top toolbar, und ich wollte tooltips zeigen bei mouseover, auch wenn andere Anwendungen aktiv waren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass der tooltip in der Statusleiste "Steuerelemente" wie ToolStripButton oder ToolStripDropDownButton nicht von Control geerbt. Für jetzt habe ich angesprochen, das problem durch die Fokussierung der tooltip in der Statusleiste, wenn ein Benutzer mit der Maus über eine Schaltfläche. Die Schaltfläche MouseHover-Ereignis ausgelöst wird, zu spät-nach dem "show-tooltip" code würde ausgeführt wurden, so erweiterte ich die ToolStripDropDownButton Klasse und meine neue Schaltfläche. Diese Methode sollte funktionieren für alle anderen button-ähnliche Klassen Erben von ToolStripItem
Vielleicht einer der zwei Ansätze, die in diesem code werden Sie kick-off in die richtige Richtung...
Das problem mit dem ersten ist, können Sie nicht setzen Sie auf die Taste direkt, es nicht von Control geerbt, und der tooltip nicht angezeigt, es sei denn, du bist über den Streifen, aber nicht über eine Schaltfläche.
Das problem mit der zweiten (auskommentiert Weg) wird es nicht angezeigt. Nicht ganz sicher warum, aber vielleicht können Sie Debuggen aus.
ich habe versucht ein paar Dinge und fand, dass dies die einfachste
wenn ich das toolstripbutton Artikel habe ich einen event-handler zu seinem hover-Ereignis:
dann den event-handler:
das funktioniert wirklich gut, obwohl ich merke eine winzige Verzögerung, wenn Sie den Mauszeiger über den tooltip in der Statusleiste für das 1. mal,
War ich versucht, das gleiche zu tun, und war es bestimmt gehen, um ziemlich schwierig zu sein und es nicht Wert. Der Grund ist, dass intern die .NET-code ist speziell entworfen, um nur die QuickInfo angezeigt, wenn das Fenster aktiv ist - prüfen Sie dies in einem Win32-level so sein wird, schwer zu fälschen den code aus.
Hier ist der code-snippet, das Sie in der QuickInfo.cs, der prüft, "GetActiveWindow()" und gibt false zurück. Sehen Sie den Kommentar im code "ToolTips angezeigt werden sollen, die nur auf aktives Fenster."
Durch die Art und Weise, können Sie sehen, alle der Quellcode für die .NET BCL mit Visual Studio 2008, hier die Anleitung die ich verwendet habe:
http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx