hi
i need some help to modify a listview control, as the guy started making it and then dissappeared offline....
I want to add checkbox and groups back in..
Any help?
Edit: forgot;
i need some help to modify a listview control, as the guy started making it and then dissappeared offline....
Code:
Class NSListView
Inherits Control
Class NSListViewItem
Property Text As String
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
Property SubItems As New List(Of NSListViewSubItem)
Protected UniqueId As Guid
Sub New()
UniqueId = Guid.NewGuid()
End Sub
Public Overrides Function ToString() As String
Return Text
End Function
Public Overrides Function Equals(obj As Object) As Boolean
If TypeOf obj Is NSListViewItem Then
Return (DirectCast(obj, NSListViewItem).UniqueId = UniqueId)
End If
Return False
End Function
End Class
Class NSListViewSubItem
Property Text As String
Public Overrides Function ToString() As String
Return Text
End Function
End Class
Class NSListViewColumnHeader
Property DisplayIndex As Integer = 0
Property Text As String = "Header"
Property Width As Integer = 100
Public Overrides Function ToString() As String
Return Text
End Function
End Class
Private _Items As New List(Of NSListViewItem)
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
Public Property Items() As NSListViewItem()
Get
Return _Items.ToArray()
End Get
Set(ByVal value As NSListViewItem())
_Items = New List(Of NSListViewItem)(value)
InvalidateScroll()
End Set
End Property
Private _SelectedItems As New List(Of NSListViewItem)
Public ReadOnly Property SelectedItems() As NSListViewItem()
Get
Return _SelectedItems.ToArray()
End Get
End Property
Private _Columns As New List(Of NSListViewColumnHeader)
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
Public Property Columns() As NSListViewColumnHeader()
Get
Return _Columns.ToArray()
End Get
Set(ByVal value As NSListViewColumnHeader())
_Columns = New List(Of NSListViewColumnHeader)(value)
InvalidateColumns()
End Set
End Property
Private _MultiSelect As Boolean = True
Public Property MultiSelect() As Boolean
Get
Return _MultiSelect
End Get
Set(ByVal value As Boolean)
_MultiSelect = value
If _SelectedItems.Count > 1 Then
_SelectedItems.RemoveRange(1, _SelectedItems.Count - 1)
End If
Invalidate()
End Set
End Property
Private ItemHeight As Integer = 20 '24
Public Overrides Property Font As Font
Get
Return MyBase.Font
End Get
Set(value As Font)
ItemHeight = CInt(Graphics.FromHwnd(Handle).MeasureString("@", Font).Height) + 6
If VS IsNot Nothing Then
VS.SmallChange = ItemHeight
VS.LargeChange = ItemHeight
End If
MyBase.Font = value
InvalidateLayout()
End Set
End Property
Any help?
Edit: forgot;
Code:
#Region " Item Helper Methods "
'Ok, you've seen everything of importance at this point; I am begging you to spare yourself. You must not read any further!
Public Sub AddItem(text As String, ParamArray subItems As String())
Dim Items As New List(Of NSListViewSubItem)
For Each I As String In subItems
Dim SubItem As New NSListViewSubItem()
SubItem.Text = I
Items.Add(SubItem)
Next
Dim Item As New NSListViewItem()
Item.Text = text
Item.SubItems = Items
_Items.Add(Item)
InvalidateScroll()
End Sub
Public Sub RemoveItemAt(index As Integer)
_Items.RemoveAt(index)
InvalidateScroll()
End Sub
Public Sub RemoveItem(item As NSListViewItem)
_Items.Remove(item)
InvalidateScroll()
End Sub
Public Sub RemoveItems(items As NSListViewItem())
For Each I As NSListViewItem In items
_Items.Remove(I)
Next
InvalidateScroll()
End Sub
#End Region