DataGridView ToolTipText wird nicht angezeigt

8

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.

    
Robert Gowland 23.12.2008, 17:02
quelle

11 Antworten

2

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.

    
Robert Gowland 13.02.2009, 18:49
quelle
8

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

    
08.01.2009 00:20
quelle
4

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.

    
Simon 11.02.2010 09:35
quelle
3

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.

    
Nick Spreitzer 29.04.2010 21:38
quelle
2

Um den Tooltip der Rasterzelle anzuzeigen, können Sie diesen Ereignishandler " CellToolTipTextNeeded " verwenden. Lesen Sie den folgenden Code Snippet,

%Vor%     
Muthukumar K 31.10.2015 08:17
quelle
1

Ich erlebe gerade das gleiche Behvoiur in Framework 3.5. Is scheint, dass die DataSource-Eigenschaft festgelegt werden muss, damit das CelToolTipTextNeeded-Ereignis ausgelöst wird.

    
sindre j 19.03.2010 14:23
quelle
1

Ich hatte ein ähnliches Problem, konnte es aber korrigieren, indem ich den ShowCellToolTip-Wert in meiner DataGridView auf true einstellte. Sobald ich das getan habe, konnte ich den folgenden Code senden und alles hat gut funktioniert.

%Vor%     
JoBaxter 16.05.2012 23:43
quelle
1

Setzen Sie die showCellToolTips-Eigenschaft von datagridview auf False

    
Keramat 07.01.2016 20:05
quelle
0

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.

    
Marcus Tik 30.12.2008 07:55
quelle
0

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%     
shindigo 12.08.2010 16:04
quelle
0
  1. Setzen Sie die ShowCellToolTips -Eigenschaft von DataGridView auf false
  2. Fügen Sie diesen Code in das CellMouseEnter -Ereignis Ihrer DataGridView ein

    %Vor%
Alex Jolig 08.09.2015 05:23
quelle