Zellen-ToolTip in DataGridView für eine Spalte deaktivieren

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von DanCooper.

    Zellen-ToolTip in DataGridView für eine Spalte deaktivieren

    Hallo

    gibt es eine Möglichkeit, in einem DataGridView die ToolTips für die Zellen einer bestimmten Spalte zu deaktivieren?

    Ich formatiere die Spalten nach dem Laden der DataSource folgendermassen:

    VB.NET-Quellcode

    1. .dgvMovies.Columns("BannerPath").Width = 20
    2. .dgvMovies.Columns("BannerPath").Resizable = DataGridViewTriState.False
    3. .dgvMovies.Columns("BannerPath").ReadOnly = True
    4. .dgvMovies.Columns("BannerPath").SortMode = DataGridViewColumnSortMode.Automatic
    5. .dgvMovies.Columns("BannerPath").Visible = Not CheckColumnHide_Movies("BannerPath")
    6. .dgvMovies.Columns("BannerPath").ToolTipText = Master.eLang.GetString(838, "Banner")


    Ich würde hier nun auch gerne angeben, ob in dieser Spalte die ToolTips der Zellen angezeigt werden sollen oder nicht.
    Ich hab ein Bild angehängt, bei dem man sieht, was ich meine.

    Erster Ausschnitt, Maus über Filmtitel, welcher länger als die Zelle ist:
    RICHTIG: Vollständiger Titel wird in ToolTip angezeigt

    Zweiter Ausschnitt, Maus über ColumnHeader:
    RICHTIG: Text aus .dgvMovies.Columns("BannerPath").ToolTipText = Master.eLang.GetString(838, "Banner") wird angezeigt in ToolTip (im Bild zwar "Fanart" und nicht "Banner", aber selbes Vorgehen)

    Dritter Ausschnitt, Maus über grünen Hacken:
    FALSCH/NICHT GEWÜNSCHT: Pfad zu Bild wird angezeigt. Ich prüfe hier, ob der Pfad String.Empty oder nicht String.Empty, je nach dem wird ein Hacken gesetzt oder nicht. Hier würde ich gerne die ToolTips deaktivieren.
    Bilder
    • Unbenannt-4.jpg

      168,11 kB, 866×1.116, 228 mal angesehen

    interlog schrieb:

    Probier mal .dgvMovies.Columns("BannerPath").HeaderCell.ToolTipText = Master.eLang.GetString(838, "Banner")
    und .dgvMovies.Columns("BannerPath").CellTemplate.ToolTipText = Nothing.

    Das hat leider nicht funktioniert.

    Im übrigen scheint dgvMovies.Item(e.ColumnIndex, e.RowIndex).ToolTipText = Nothing wie auch .ToolTipText = String.Empty und .ToolTipText = "" nicht zu funktionieren, das ToolTip wird trotzdem angezeigt (getestet im unteren Code). Nur .ToolTipText = "Blabla" hat dazu geführt, dass nun "Blabla" als ToolTip angezeigt wurde. Verstehe ich nicht wirklich...

    Ich habs jetzt aber so gelöst, dass die ToolTips für das ganze DataGridView aktiviert bzw. deaktiviert werden:

    VB.NET-Quellcode

    1. Private Sub dgvMovies_CellMouseEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvMovies.CellMouseEnter
    2. Dim colName As String = Me.dgvMovies.Columns(e.ColumnIndex).Name
    3. If String.IsNullOrEmpty(colName) Then
    4. Return
    5. End If
    6. Me.dgvMovies.ShowCellToolTips = True
    7. If (colName = "BannerPath" OrElse colName = "ClearArtPath" OrElse colName = "ClearLogoPath" OrElse _
    8. colName = "DiscArtPath" OrElse colName = "EFanartsPath" OrElse colName = "EThumbsPath" OrElse _
    9. colName = "FanartPath" OrElse colName = "LandscapePath" OrElse colName = "NfoPath" OrElse _
    10. colName = "PosterPath" OrElse colName = "ThemePath" OrElse colName = "TrailerPath" OrElse _
    11. colName = "HasSet" OrElse colName = "HasSub") AndAlso e.RowIndex >= 0 Then
    12. Me.dgvMovies.ShowCellToolTips = False
    13. End If
    14. End Sub