Direkt im Control implementiert ist das nicht.
Leider sind auch nicht die Ereignisse eingerichtet,
die man benötigt. um auf einfache Weise so eine Funktion
einzubauen.
So weit mir bekannt, müßte man die Windows Messages zur
Mausbewegung ausfiltern und über Windows-Apis den
aktuellen Spaltenkopf unter der Maus ermitteln.
Das ist relativ komliziert. Es gibt aber andere Controls
für Tabellen ....
Das ColumClick-Ereignis ist beim Listview vorhanden.
Damit kann man etwas Tooltip-Ähnliches basteln.
Auf Formulareben definieren ....
'Listview
Dim WithEvents lvw As New ListView With
{.Parent = Me, .Size = New Size(400, 400)}
'Ein Label für die Tippanzeige/Eigenschaften beachten
Dim lblTool As New Label With
{.Parent = Me, .Width = 100, .Visible = False,
.BackColor = Color.Yellow, .BorderStyle = BorderStyle.Fixed3D}
'Ein Stringarray für die Tipptexte
Dim columntips As String()
'Ein Timer zum Abschalten der Tipps
Dim WithEvents timTool As New Timer With
{.Interval = 4000, .Enabled = False} Code zum Füllen des Listview mit Testdaten
und Erstellen der Tipptexte
lvw.View = View.Details
'Tipparray auf Spaltenzahl verlängern
Array.Resize(columntips, 6)
'Spaltenköpfe und Spaltentipp-Texte
For i As Integer = 0 To 5
lvw.Columns.Add("Col" & i.ToString)
columntips(i) = "Tipp zu " & i.ToString
Next i
'Einige DemoItems
For i As Integer = 0 To 10
Dim lvi As ListViewItem = New ListViewItem("row" & i.ToString)
lvw.Items.Add(lvi)
For k As Integer = 0 To 4
lvi.SubItems.Add("Sub" & k.ToString)
Next k
Next i 'Die beiden Events zum Schalten des Labels
Private Sub lvw_ColumnClick(sender As Object,
e As ColumnClickEventArgs) Handles lvw.ColumnClick
lblTool.Visible = False
timTool.Enabled = False
'Text der Click-Spalte aus Array ins Label
lblTool.Text = columntips(e.Column)
'Erforderliche Labellänge berechnen
Dim w As Single
Using g As Graphics = lblTool.CreateGraphics
w = g.MeasureString(lblTool.Text, lblTool.Font).Width
End Using
lblTool.Width = CInt(w) + 10
'Label an die Mausposition schieben (verbesserungsfähig)
Dim p As Point =
lvw.PointToClient(New Point(MousePosition.X, MousePosition.Y))
lblTool.Location = p
'Tipp-Label sichtbar machen
lblTool.Visible = True
lblTool.BringToFront()
'Abschalttimer aktivieren
timTool.Enabled = True
End Sub
Private Sub timTool_Tick(sender As Object, e As EventArgs) Handles _
timTool.Tick
'Nach Intervallzeit das Label wieder verschwinden lassen
lblTool.Visible = False
timTool.Enabled = False
End Sub
Beitrag wurde zuletzt am 11.06.20 um 09:00:49 editiert. |