Ich habe in einer Desktopanwendung eine Datenbindung DataGridView
mit Spalten mit der Eigenschaft ToolTipText
, aber es wird kein Tooltipp angezeigt, wenn ich den Mauszeiger über die Rasteransicht (Zellen oder Zellenköpfe) bewege.
Die ShowCellToolTips
-Eigenschaft der Rasteransicht ist true
, und ich habe die Verwendung von breakpoints überprüft, die nicht programmgesteuert geändert werden, bevor ich die Maus übergebe.
Ich habe versucht, einen CellToolTipTextNeeded
-Ereignishandler zu erstellen, um zu sehen, was der Tooltip-Text war, aber der Event-Handler wird nie aufgerufen.
Gibt es etwas, das ich vermisst habe?
Danke, Rob
Bearbeiten: Wir verwenden Framework 2.0.
Am Ende haben wir ein ToolTip-Widget und die Ereignisse CellMouseEnter
, CellMouseLeave
verwendet, um es entsprechend anzuzeigen. Nicht optimal, aber es funktioniert um das seltsame Verhalten, das wir erlebt haben.
Aus Ihrer Frage geht hervor, dass Sie den QuickInfo-Text der Spalten festlegen.
Spalten-QuickInfo-Text wird nur angezeigt, wenn er über die Kopfzeilen schwebt. Um Tooltip-Text auf den Zellen anzuzeigen, müssen Sie das CellToolTipTextNeeded
-Ereignis verknüpfen und den Wert von e.ToolTipText
in den Ereignisargumenten festlegen
Versuchen Sie es mit der Cell.ToolTipText-Eigenschaft. Wahrscheinlich müssen Sie die Zeilen der DataGridView-Schleife wiederholen und die Tooltips manuell festlegen:
%Vor%Ist möglicherweise nicht für eine gebundene DataGridView mit vielen Zeilen geeignet, funktioniert aber für mich mit einem ungebundenen DataGridView mit ein paar hundert Zeilen. Hoffe, das hilft.
Wenn ich ein datagridview mit einer einzelnen (leeren) Spalte zu einem Formular hinzufügte, der ToolTipText-Eigenschaft für diese Spalte Text hinzufügte und sicherstellte, dass die ShowCellToolTips-Eigenschaft für die Datagridview auf True gesetzt ist, erhalte ich ein Tooltip-Popup Ich fahre mit der Maus über den Header dieser Spalte. Dies scheint zu widersprechen, was in der ursprünglichen Frage gesagt wurde, aber in meinem Test war das Gitter nicht datengebunden. Nicht sicher, ob das einen Unterschied macht. In einem Projekt mit datengebundener Datagrid-Ansicht habe ich jedoch nur eine ToolTip-Komponente verwendet:
(1) Fügen Sie Ihrem Formular eine QuickInfo-Komponente hinzu.
(2) Setzen Sie die Eigenschaft ToolTip on toolTip1
(oder den entsprechenden Namen für Ihre ToolTip-Komponente) für Ihre Datagridview auf den Text, den Sie anzeigen möchten.
(3) Setzen Sie die ShowCellToolTips-Eigenschaft von datagridview auf False.
(4) Viola! Funktioniert wie erwartet.
Um den Tooltip der Rasterzelle anzuzeigen, können Sie diesen Ereignishandler " CellToolTipTextNeeded " verwenden. Lesen Sie den folgenden Code Snippet,
%Vor%Ich weiß nicht, ob dieser Tipp eine Lösung für Ihr spezifisches Problem ist, aber verwenden Sie SP1 von VS2008? Dieses Service Pack behebt viele verschiedene Probleme, wie ich festgestellt habe.
Ich habe diesen Artikel gefunden, der nach Hilfe zum Setzen von Tooltips pro Zeile sucht.
Ich wollte nur bestätigen, dass die Behandlung des CellToolTipText-Ereignisses in VS2008 SP1 für mich funktioniert.
Für diejenigen von euch, die sich fragen, wie sie den Text auf einen Wert aus dem zugrunde liegenden Datarow setzen, könnte dies nützlich sein:
%Vor%ShowCellToolTips
-Eigenschaft von DataGridView auf false
Fügen Sie diesen Code in das CellMouseEnter
-Ereignis Ihrer DataGridView ein
Tags und Links c# visual-studio visual-studio-2008 datagridview desktop-application