Hej Det finns ingen Multiline-egenskap för Items i en ListView. Lösningen kan vara att antingen använda dig av komponenten du hittade eller bygga en egen med den befintliga som bas (dock inte det lättaste). Jag sket i listview och använde en listbox istället. Saknar Delphi's drawgrid.... :-( Multiline på ett item i en listview?
Har sökt ett tag efter hur man kan göra så att ett item i en listview har flera rader text när den är satt till "Details" eller "List". Har bara hittat en komponent som gör det. Gjorde nåt liknande i Delphi för länge sedan, men kommer inte ihåg hur det var.
Någon som hra en susning om hur man gör? Sv: Multiline på ett item i en listview?
Sv: Multiline på ett item i en listview?
Sätter drawmode till OwnerDrawVariable, och fångar upp eventen nedan.
Private Sub libxRec_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles libxRec.DrawItem
If e.Index >= 0 Then
e.DrawBackground()
Dim myBrush As Brush
If e.State = DrawItemState.Focus Then
myBrush = Brushes.Black
Else
myBrush = Brushes.Gray
End If
Dim rect As New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height)
e.Graphics.DrawString(libxRec.Items(e.Index), e.Font, myBrush, rect)
e.DrawFocusRectangle()
End If
End Sub
Private Sub libxRec_MeasureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles libxRec.MeasureItem
Dim theListBox As ListBox = CType(sender, ListBox)
Dim itemString As String = CType(theListBox.Items(e.Index), String)
Dim resultStrings() As String = itemString.Split(vbCrLf)
If (resultStrings.Length >= 2) Then
e.ItemHeight += e.ItemHeight
End If ' blir tokfel vid mer än 2 rader och skall fixas till
theListBox.SelectedIndex = e.Index
End Sub