Ideal .NET WinForms (C#, VB.net) replacement list view component. More features, less limitations, fast and optimized.
* Fixed scrolling when all items are unselectable
* Fixed drag selections (not all intersecting items were always selected)
* Fixed sub-item focus rectangle display in Details view when FullRowSelect is false
* Fixed sub-item background display in Details view when FullRowSelect is false
* Fixed text highlighting not updating properly after automatic column resizing
* Added column unsorting by middle mouse button
* Fixed hit test on items in List view
* Added overlay image alignments support for columns and items in Detail view
* Fixed dragging empty selection when MultiSelect=False and user dragged item with Control key pressed
* Added sub-item check boxes and radio buttons support
* Added support for custom disabled check boxes and radio buttons
* Fixed ObjectDisposedException being raised when closing Form right after clicking an item
* Fixed RemoveSearchHighlight to work in item hierarchy
* Fixed drawing of group header when the group is focused by keyboard
* Fixed disappearing items after scrolling and item reordering in LargeIcon view with multi-line items
* Added integration with Visual Studio 2013
* Added custom date format support in BetterListViewDateTimePickerEmbeddedControl
* Added ItemReordered event
* Fixed FindItemsWithText method call when working with invisible items
* Fixed saving form after editing tooltips in Windows Forms Designer
* Fixed sorting of items with missing sub-items or Key set to null
* Fixed pixel precision bug in column selection
* Fixed proper scrolling on combined items using EnsureVisible method
* Fixed drawing item selection on MouseUp in some cases (click directly on text of previously selected item in Details view)
* Fixed search highlight in other than Details view
* Fixed search highlight on multi-line items
* Added HotTracking property
* Added SmoothScroll property
* Improved responsiveness (optimized control refreshing on control state transitions)
* Fixed BetterListViewColumnHeader.DisplayIndex property value not being updated at the time of ColumnHeaderReordered event
* Fixed bug in hit test invalidation optimization causing slower redrawing when mouse moves over large control with many items and columns
* Fixed item deselection when clicking on client area
* Fixed item selection by clicking on group header
* Removed beep when no item is found though single keypress (keyboard search)
* Fixed keyboard search
* Fixed keyboard search with 'Substring' setting and single keystroke
* Fixed rare but possible NullRefereceException in OnMouseUp method
* SuspendSelectionChanged renamed to SuppressSelectionChanged
* Fixed selection display when FullRowSelect is false in Details view
* Fixed grid lines display when HeaderStyle is None in Details view
* Fixed closing floating window in Samples Explorer
* Fixed Visual Studio Toolbox integration on Windows XP
* Added HScrollHeight, VScrollWidth properties
* Fixed unnecessary redrawing during MouseMove
* Fixed possible exception when invoking context menu on an item by mouse
* Fixed multi-line text when TextTrimming is set to None
* Fixed public constructor parameters being obfuscated
* Added owner drawing support for drag selection
* Added data binding customization
* Added separate product activation utility
* Added BetterListViewHitTestInfo.MousePosition property
* Fixed unhandled exception on web request timeout when activating over web proxy
* Added separate column auto resizing for column header, column content or both (BetterListViewColumnHeaderAutoResizeStyle changed to flags enum)
* Fixed DoubleClick and ItemActivate not raised when the redrawing takes too much time between successive clicks
* Fixed Combined Items
* Fixed check boxes and expand buttons of children in combined items being inactive
* Fixed combined item not being properly measured when its child has been made invisible
* Fixed insertion mark display on combined items
* Fixed online activation from behind a web proxy
* Fixed binding DataTable in the Data Binding sample
* Fixed unnecessary refreshes during binding a table with multiple columns
* Added possibility of changing label being edited by setting Label property in BeforeLabelEdit and AfterLabelEditCancel event data
* Improved Visual Studio Toolbox integration for more versions of .NET Framework, including Client Profile
* Fixed possible NullReferenceException during clicking on column headers (negative mouse cursor coordinates probably due to mouse movement)
* Added 'Search Highlight' feature
* Added SearchHighlight, SearchHighlightColor, SearchHighlightBorderColor, SearchHighlightTextColor properties
* Added BetterListViewSearchOptions.UpdateSearchHighlight enum value
* Added BetterListViewSubItemBounds.BoundsSearchHighlight property
* Fixed IndexOf() method on collections to return -1 if an element is not contained in the collection
* Fixed case where clickable/sortable/unsortable column is clicked and mouse cursor moves quickly away
* Fixed column auto resizing to account for groups and hierarchical items
* Fixed not allowing to put duplicate references in SelectedItems.Set(IEnumerable
* Fixed moving mouse cursor over an item that is partially scrolled out so that the text boundaries have negative top coordinate
* Fixed ItemActivate not raised on slow computers when item is double-clicked and mouse cursor moved quickly away
* Added ColumnReorder event next to existing ColumnReordered event to allow cancelling column reordering
* Added keyboard-invoked context menu placements (ContextMenuStripPlacement property)
* Improved context menu placement: Keyboard-invoked context menu is displayed under the first visible selected item
* Improved grid lines appearance
* Improved item parts alignment when expand buttons are present
* Fixed possible improper behavior on slower computers (or lagging code because of too much drawing etc.)
* Fixed item not selected clicked and mouse cursor is immediately moved away
* Fixed drag selection commited when item is almost double-clicked (second mouse button release not done) and then mouse is moved before button is released
* Fixed DoubleClick event raised after any amount of time when item is reordered with incomplete double-click (second mouse button release not done) and then other item is clicked
* Added FIPS-compliance (improved security and compatibility)
* Improved horizontal multi-line text alignment
* Improved Samples Explorer
* Properties VisibleColumns, VisibleGroups, VisibleItems hidden from Properties window in the WinForms Designer
* Fixed commencing mouse drag selecting on double-click and mouse move in quick succession
* Fixed scrolling to parent item vertically when only child item have been selected
* Fixed AutoResizeColumns updating just the last column
* Fixed column header sort glyph placement when the column is sorted and no items are present in the list
* Fixed image border color not changing when ImageBorderColor layout property changed
* Added support for TypeConverters when adding custom objects to collections
* Improved horizontal scrolling on items within item hierarchy
* Fixed reordering item in an empty or collapsed group
* Allowed setting Font property to null on column headers, groups, items and sub-items
* Fixed cycling between items during keyboard search
* Fixed code generation for SearchSettings property
* Fixed NullReferenceException when edited sub-item is switched during label editing
* Fixed multi-line text wrapping when BetterListViewItem.CheckBoxAppearance is set to None
* Fixed sorted column background being drawn in other than Details view
* Fixed unsufficient vertical scroll bar maximum when column headers are added in first initialization between BeginUpdate()/EndUpdate()
* Fixed double-click on column containing hidden check box
* Added HeaderStyle property
* Added BetterListViewColumnHeaderStyle.None enum value (indicates that column header is not displayed, but corresponding sub-items are)
* Added BetterListViewColumnHeaderStyle.Hidden enum value (indicates that column header is hidden, including sub-items)
* Improved mouse and keyboard selections to behave more like Windows Explorer
* Merged BetterListViewColumnHeaderStyle.Hidden enum value and BetterListViewColumnHeader.Value
* Control+Shift modifier keys behave the same way as Control modifier key alone in Multi-column Sorting
* Hidden ShowItemExpandButtons property in Express edition
* Fixed possible multiselection using Control+click when MultiSelect is false
* Fixed selected child items not removed from SelectedItems collection after BetterListView.Items.Clear() call
* Fixed designer not supporting some BetterListViewColumnHeaderStyle enum values well
* Added BetterListViewDropPart.On
* Added BetterListViewLabelEditCancelEventArgs, BetterListViewLabelEditCancelEventHandler for BeforeLabelEdit, AfterLabelEditCancel events
* Added OnDrawInsertionMark method, DrawInsertionMark event
* Added BetterListViewInsertionLocation.Offset property
* Added CollapsedItemUnselection property (child item unselection behaviors when parent item is collapsed)
* Added CheckBoxesAlign property to make parent items without check boxes more distinguishable in hierarchy
* Added BetterListViewLabelEditActivation.ClickThrough label editing option
* BetterListViewCheckItemReorderEventArgs now inherits from DragEventArgs to provide more information relevant to Drag and Drop
* Added BetterListViewCheckItemReorderEventArgs.InvalidationReasons property to allow working with different reasons for item reorder invalidation
* Added BetterListViewColumnHeaderStyle.Unsortable enum value
* Added BetterListViewHitTestInfo.ColumnArea enum value
* Added unsorting individual columns using Control modifier key when multi-column sorting is active
* Improved performance of hierarchical items
* When parent item is collapsed and any of its children selected, the parent itself gets selected
* Changed EnsureVisible(BetterListViewItemCollection) to EnsureVisible(ICollection
* A new BufferedGraphicsContext is created instead of using BufferedGraphicsManager.Current to avoid possible clash with other 3rd party controls using double-buffering in the same context
* GetItemAt, GetSubItemAt, GetColumnHeaderAt, GetGroupAt methods can be called even when the control is in updation state (though the fresh information is not ensured) - for example, this enables using GetDropInfo method inside ItemReorder event handler
* Removed CancelEdit from AfterLabelEdit event data, AfterLabelEditCancel should be used instead
* Fixed changing selection from user code within ItemDrop event handler
* Fixed BetterListViewItemReorderEventArgs.Locations can contain wrong values and missing child item indices
* Fixed sorting items with hierarchy when some item contains more child items than there are top-level items
* Fixed begining label editing when a single item is deselected using mouse and Control modifier key is pressed
* Fixed updating last selected element when selection is changed programmatically
* Fixed flickering when scrolling by moving selection using arrow keys
* Fixed measurement of items not resetting when expand button is displayed by adding child items
* Fixed not allowing to reorder item after last child item, but on higher level
* Fixed BetterListViewItemEnumerator
* Fixed items not positioned properly when ShowDefaultGroupHeader property value is changed
BREAKING CHANGES:
* UnselectCollapsedItems property renamed to CollapsedItemUnselection
* Added support for Client Profile versions of .NET Framework
* Added accessibility support
* Added AccessibleObject implementations
* Added protected virtual methods DoDefaultAction(BetterListViewColumnHeader) and DoDefaultAction(BetterListViewItem)
* Added CircularSelection property
* Added BetterListViewItem.CheckBoxAppearance property
* Added BetterListViewItem.CustomDropDisplayExternal, BetterListViewItem.CustomDropDisplayInternal properties
* Added BetterListViewSubItem.DisplayIndex property
* Added BetterListViewDragDropEffectSettingEventArgs.UpdateInsertionMark property
* Added custom item/sub-item text formatting
* Added BetterListView.FormatItem
* Added BetterListViewSubItem.FormatText property
* Added BetterListViewSubItem.DisplayText property
* Added BetterListViewItem.DisplayText
* Added BetterListViewItem.FormatText property
* Added BetterListViewItem.OnFormat
* Added BetterListViewItem.RefreshDisplayText
* Added VisibleColumns, VisibleGroups, VisibleItems properties
* Added BetterListViewColumnHeader.NextVisibleColumnHeader, BetterListViewColumnHeader.PreviousVisibleColumnHeader properties
* Added check on setting IsValid to true in CheckItemReorder event handler
* Added automatic sorting of item hierarchy
* Added BetterListViewItem.AllowSortChildItems property to customize hierarchical sorting
* Added detecting source of item check state change
* Added BetterListViewCheckedItemsChangedEventArgs.CheckStateChangeMode
* Added BetterListViewItemCheckEventArgs.CheckStateChangeMode
* Added BetterListViewItemCheckedEventArgs.CheckStateChangeMode
* Improved detecting clicking on empty space in multi-line text
* Improved display of check box in cut state
* Improved serialization and ToString methods using invariant culture whenever appropriate
* Improved BetterListViewNaturalItemComparer to handle arbitrarily large numbers
* When AutoResizeColumn is called between BeginUpdate() and EndUpdate(), the resizing is postponed until the EndUpdate() call
* Changed type of ImageSize layout property
* Renamed BetterListViewLayoutItems.ImageSizes property to BetterListViewLayoutItems.SubItemImageSizes
* Removed 'sealed' modifier from BetterListViewSubItem class to allow inheritance
* Removed restoring selection when ItemReorderMode is set to Custom
* Fixed moving selection on group headers using left/right arrow keys in List view
* Fixed BetterListViewItem.CustomHeight property not taken into account in EqualsContent and Clone methods
* Fixed BetterListViewSubItemCollection
* Fixed custom collection always containing a single sub-item when created
* Fixed cloning
* Fixed unselecting item when clicked outside items and MultiSelect = false
* Fixed selecting items ranging from and item to nearest group header above it
* Fixed serialization of an empty list
* Fixed display of right-aligned text when image is displayed after the text (columns, groups, items/sub-items)
* Fixed display of group header splitter line when the text is centered or right-aligned
* Fixed display of item selection in Details view when FullRowSelect is set to false
* Fixed cloning of BetterListViewItem.CheckState property
* Fixed first sub-item image disappearing when sub-item ImageKey property is set to null
* Fixed measurement of default group header
BREAKING CHANGES
* Replaced BetterListViewItem.ShowCheckBox by BetterListViewItem.CheckBoxAppearance
* Replaced BetterListViewItem.AllowDropHighlight by BetterListViewItem.CustomDropDisplayExternal and BetterListViewItem.CustomDropDisplayInternal
* Changed type of ImageSize layout property
* Renamed BetterListViewLayoutItems.ImageSizes property to BetterListViewLayoutItems.SubItemImageSizes
* Added GetDropInfo method
* Fixed some Drag and Drop flaws
* Added AlignHorizontalImage, AlignVerticalImage properties in BetterListViewItem, BetterListViewSubItem and BetterListViewColumnHeader
* Added HeaderAlignmentHorizontalImage, HeaderAlignmentVerticalImage in BetterListViewGroup
* Added GetDropInfo method to determine drop/insertion location during Drag and Drop from user code
* Enabled group focusing by right mouse button
* Improved text clipping
* Fixed EqualsContent and CopyTo methods of Better ListView element classes (missing AlignVertical/HeaderAlignmentVertical property)
* Fixed vertical image alignment in Tile view
* Fixed display of vertically centered text in LargeIcon and Thumbnail view
* Fixed NullReferenceException when InsertionMark with empty insertion location is set
* Added SubItemFocusBehavior property
* Fixed problem when windows theme is changed to Aero in run-time
* Fixed keeping state of the control when focus is lost
* Fixed rasing SelectedItemsChanged even when drag selection ended by losing focus or mouse capture change
* Fixed horizontal scroll bar having SmallChange value too small when no items are visible (only groups)
* Fixed column headers not refreshing properly on custom scrolling in updating mode
* Fixed auto scrolling triggered during drag selecting when owner form has been minimized
* Added automatic removal of items from the list when removed from a group
* Fixed BetterListViewItem.IsExpanded always 'true' in cloned items
* Fixed improper alignment of items when a new item with children is added to flat list
* Fixed combined item not showing combined selection when added during control initialization
* Fixed refreshing scrolled item when BetterListViewItem.Image property is changed
* Fixed item redrawing when selection is changed
* Fixed label editing in SmallIcon and List view
* Fixed BetterListViewItem.Bounds and BetterListViewItem.GetBounds() returning null
* Removed unnecessary redrawing in mouse events (caused by EnsureVisible)
* Fixed optimized redrawing in some cases when focus is changed
* Added BetterListViewItem.CustomHeight property
* Added MaximumToolTipTextLength property
* Removed unnecessary spacing for expand buttons when ShowItemExpandButtons is set to false
* Optimized redrawing when changing item focus or selection
* Fixed possible ItemActivate after drag selection or vice verse
* Fixed text wrap when the text contains ampersand symbols
* Fixed activation through web proxy
* Workaround for .NET performance issuewhen displaying automatic tooltips with very long text
* Added support for ElementOuterPadding layout property in Details view
* Changed BetterListViewFocusedItemChangedEventArgs properties FocusedSubItemOld, FocusedSubItemNew to FocusedColumnIndexOld, FocusedColumnIndexNew to avoid referencing a non-existing sub-item (when the last sub-item is focused and removed)
* Resolved some issues caused by obfuscation
2.5.8.0
* Enabled Better ListView to be used from C++/CLI (resolved obfuscation issues)
* Fixed problem when setting ImageKey to data-bound items
* Improved automatic tooltips for Details view with columns
* Fixed column not resizing when double-clicked on the resizing area
* Fixed control not refreshing properly when Enabled property is changed on parent control
* Fixed nested RefreshView call causing column headers to break in some cases
* Fixed scrolling about 1 pixel after label editing (vertically scrolled) last item in Details view
* Fixed possible NullReferenceException when clicking on item check box
* Fixed group font problem when 'Segoe UI Regular' font is not installed
* Fixed updating control while having zero dimensions
* Fixed ItemActivate not raised when MultiSelect is false
* Added BetterListViewLabelEditActivation.Immediate
* Added sample for BetterListViewItem.Visible property
* Standard label editing can be invoked by clicking outside of text area
* Single-click labele editing can be invoked by clicking on item/sub-item text even if the item is not selected
* Fixed Invalidate method of BetterListViewColumnHeader, BetterListViewItem, BetterListViewGroup
* Fixed default button of the Form pressing after text label editing
* Fixed group headers not updating when MinimumSize property of the group layout changed
* Fixed possible entering inconsistent state when the control has zero dimensions
2.5.3.0
* Fixed problem when all items in a group set invisible (BetterListViewItem.Visible set to false)
* Fixed problem when sub-items of an item are clear while some sub-item is focused
* Added BetterListViewItem.Visible property
* Added ToString(bool) method in some collection classes to allow printing out list of individual items
* More detailed information returned in ToString methods of Better ListView elements
* Improved group header font fallback
* HitTest returns BetterListViewHitTestInfo.Empty when the control is updating
* When ContextMenuStrip is available, it can be used instead of ContextMenuStripItems
* BufferedGraphicsContext for control double-buffering is obtained from BufferedGraphicsManager instead of creating new
* Fixed changing component names in Visual Studio Component Designer (column headers, items, sub-items and groups)
* Fixed calling EnsureVisible when the control is updating (scrolling postponed util EndUpdate is called)
* Fixed selected item kept in SelectedItems collection when replaced using indexer (e.g. BetterListView.Items[1] = newItem)
* Fixed problem when clicking on column header and quickly moving mouse pointer outside client area
* Fixed return value of BetterListViewAddress.ToString
* Fixed Document Outline window blinking in Windows Forms Designer when BetterListViewItem is selected and Properties window opened at the same time
* Fixed group header text disappearing when changed in runtime
* Fixed group image not always updating when is of same size and set in runtime
* Fixed Dispose method when Array is bound to Better ListView
* Fixed ForeColorGroups property serializing to designer code even when having default value
* Fixed background image aligned to bottom/right side being shown under scroll bars
* Extended background of combined items (both parent and child items)
* Fixed link in documentation (chapter "Hit Test")
* Added ShowDefaultGroupHeader property
* Added GroupHeaderBehavior property
* Added BetterListViewItem.AllowSelectChildItems property
* Added BetterListViewItem.Selectable property
* Added BetterListViewItem.SelectableItem property
* Added BetterListViewItem.LastAvailableChildItem property
* Added BetterListViewSearchOptions.SelectableItemsOnly to allow searching through selectable items only
* Displayable and selectable item is recognized with hit test (the two can be different because of BetterListViewItem.AllowSelectChildItems)
* When AutoSizeImages is true (the default) in item layouts corresponding to Details view, the space for image is made only when the item actually has an image
* Default font of the group does not get unnecessarily serialized to designer generated code
* Removed unused property ShowFocusRectangle
* Fixed possibly obtaining default group instance through BottomGroup or TopGroup properties
* Fixed FindItemsWithText method accepting wrong type of item index
* Fixed content not scrolling horizontally in List view
* Fixed not keeping focused sub-item in same column after Page Down, Home and End (Details view)
* Fixed group font not creating when 'Segoe UI' is not installed (font fallback is used to 'Trebuchet MS' or to default font of the control)
Breaking Changes:
* Item property of BetterListViewHitTestInfo split to ItemDisplay and ItemSelection
* Added LabelEditDefaultAccept property
* Added EndEdit method
* Fixed horizontal scrolling
Breaking Changes:
* When label edit is cancelled by the control (e.g. by losing focus), the default action is not accepting the edited data - this can be set by LabelEditDefaultAccept property to false
* Fixed vertical scroll bar not showing up
* Fixed accessing disposed back buffer Graphics object after removing control from designer surface
* Fixed links to Index in Better ListView Express Documentation
* Fixed project file of Visual Basic samples for Express edition
* Faster initialization when BeginUpdate/EndUpdate not used and the control does not have parent / is invisible
* Fixed scrolling horizontally when columns exceed width of client area in other views than Details
* Added FocusedItemChanged event
* Added Center layout property to allow change of item centering in Thumbnails and LargeIcon views
* Added hotkey prefix display support
* Every column have its own resizing style (BetterListViewColumnHeader.SmoothResize)
* When a group is clicked, only the group header is scrolled into view (not the entire group)
* Improved performance of multi-line items
* Fixed rendering multiline text with custom newlines
* Fixed group item enumerator
Breaking Changes:
* BetterListView.SmoothColumnResize property moved to BetterListViewColumnHeader.SmoothResize
* Added ViewChanged event
* Added CheckedItemsChanged event
* Added scrolling to group when clicked
* Fixed raising CheckItemReorder event raised every time (not only when ItemReorderMode is set to Custom)
* Fixed displaying items when ShowGroups is false and the items are contained in some group in other control
* Fixed problem when setting Image property of sub-item to null after changing view where the sub-item has empty image size
* Fixed behavior of the BetterListViewItem.Checked property setter
* Fixed ItemChecked event raising when Checked or CheckState property of BetterListViewItem changed from user code
* Fixed vertical scroll bar disappearing in Details view when the control was too wide
* Fixed not scrolling to leftmost part of an item in Details view when changing selection
* Fixed rasing SelectedItemsChanged and ItemSelectionChanged events on disposing Better ListView containing selected items
Breaking Changes:
* Use CheckedItemsChanged event for handling check state changes of multiple items
* properties CurrentValue, NewValue of ItemCheckedEventArgs renamed to OldCheckState, NewCheckState
* Added support for newline characters in text (multi-line text)
* Added BetterListViewSubItemBounds.BoundsImageFrame
* Extended BetterListViewItemComparer
* CheckItemReorder event is raised even when ItemReorderMode is set to Enabled (not only Custom)
* Columns, items and groups get automatically removed from Better ListView when the control is disposed
* Optimized changing images in runtime
* Extended documentation (Multi-line Items, Selecting and Checking Items, Sorting Items)
* Fixed IsAnythingSelected property
* Fixed SelectedIndices collection not containing updated indices after sorting items
* Fixed possible problem when sub-item is replaced by the user in IBetterListViewEmbeddedControl.SetData method during label edit operation
Breaking Changes:
* Renamed BetterListViewItemActivateItemActivationSource to BetterListViewItemActivationSource
* For owner drawing in empty image area of custom size, use BetterListViewSubItemBounds.BoundsImageFrameBounds instead of BetterListViewSubItemBounds.BoundsImage
* Added HideSelectionMode property
* Fixed sub-item with TextWrapping.Space wrapping text to more lines than specified by MaximumTextLines layout property
* Added BetterListViewItem.TextWrapping (BetterListViewSubItem.TextWrapping) property
* Added vertical text alignment for columns, items, sub-items and groups
* Added BetterListViewDrawItemEventArgs.DrawEnabled and BetterListViewDrawItemEventArgs.DrawFocused properties
* Added comparation operators to BetterListViewAddress
* When items are selected from user code, new selections with Shift or Control+Shift keys are made from the item with lowest index (address) value
* Sub-item text aligned on top in Details view
* Revised and extended documentation
* Fixed item text not displaying properly on items in Thumbnails view
* Fixed item images not refreshing when another ImageList is set with same image sizes
* Fixed problem when modifying tree hierarchy in runtime
Breaking Changes:
* BetterListViewColumnHeader.Align renamed to BetterListViewColumnHeader.AlignHorizontal
* BetterListViewGroup.HeaderAlignment renamed to BetterListViewGroup.HeaderAlignmentHorizontal
* BetterListViewItem.Align renamed to BetterListViewItem.AlignHorizontal
* BetterListViewSubItem.Align renamed to BetterListViewSubItem.AlignHorizontal
* TextAlignment changed to TextAlignmentHorizontal
* DefaultTextAlignment, DefaultTextTrimming layout properties made editable
* Expand button is hidden on empty groups
* Revised Better ListView Documentation
* Fixed ArgumentOutOfRange exception when hierarchical items are re-measured in specific order
* Fixed displaying images when using ImageList
* Fixed adding columns and items in design-time
* Fixed selections with Control-Shift pressed
* Fixed problem when collapsing group emptied by item reordering
* Fixed problem when reordering columns when there is a bound data source
* Minor fixes in Samples Explorer
Breaking Changes:
* LayoutOptions property has been replaced by layout propery AutoSizeImages (e.g. LayoutItemsCurrent.AutoSizeImages)
* Fixed item not refreshing after sub-items added/removed
* Fixed item not refreshing after child items added/removed
* Fixed ordering of items in SelectedItems collection when child items are selected
* Fixed extra space in column headers when images are displayed just in some of the column headers
* Improved natural item comparer to support longer numbers
* Fixed adding item to end of the list when reordering items into different group
* Fixed items not updating when column is auto-resized or data source changed
* Fixed blank space for image not appearing on custom image layout
* Added 'static' column resizing option
* Added optional automatic item resizing in Details view when columns are not visible
* Added special collections for selected items and indices
* Added special collections for checked item indices
* Added SelectedItemsChanged event
* Added methods FindNearestItem and BetterListViewItem.FindNearestItem
* Added automatic insertion of items into Better ListView, when added to group or group into Better ListView
* Added new C# and Visual Basic samples
* Added 'EqualsContent' method for 'by value' comparison of elements and collections
* Optimized performance of expand/collapse operations on items and groups
* Optimized performance of modifying item collection
* ItemSelectionChanged event is raised per-item as in the .NET ListView
* Date/time format set to Short by default in DateTimePicker embedded control
* BetterListViewView enum made compatible with System.Windows.Forms.View
* Revised and corrected XML documentation
* Corrected access modifier of InnerList property of collections from public to private
* Default column width increased to 128 pixels (was 60 pixels)
* Fixed column header backround display when vertical scroll bar is visible
* Fixed group header display when column headers are wider than client area and horizontally scrolling
* Fixed possible initialization of sub-item, column or group with null text
* Fixed BetterListViewItem.Selected setter
* Fixed BetterListViewItemIndexComparer taking item hierarchy into account
* Fixed BetterListViewItem.Level getter
* Fixed making selection with Shift+arrow after items have been removed from the list
* Fixed editing sub-item collection in Windows Forms Designer
* Fixed not sorting when ItemComparer is set and sorting is suspended
* Fixed property ColorInsertionMark not having effect on insertion mark color
Extended documentation
* Added Quick Start Tutorial
* Added C# and Visual Basic sample source code
* Added 'Quick Start' chapter
* Extended 'Performance' chapter
Breaking Changes
* Behavior of ItemSelectionChanged event has been adjusted according to original .NET ListView
* Removed setter of CheckedIndices, CheckedItems, SelectedIndices and SelectedItems
* BetterListItem constructor with parameters (string, string) have different meaning, use (string[]) instead
* BetterListViewColumnHeader constructor with paramter (int) refers to ImageIndex property, not Width property
* Property IsSelected of BetterListViewItem renamed to Selected
* Value comparisons of implementations of Equals and IEquatable
* Fixed re-installation of betterlistview.dll in GAC
* Added item/sub-item image border drawing option
* Added customizable image border color
* Images in Thumbnails view centered vertically
* Fixed refreshing control when Font property set
* Fixed measurement of fonts with overhang glyphs (italics)
* Added 'File Explorer' in samples
* Implemented CopyTo() method in element classes to allow for proper cloning of derived objects
* Fixed column header display when scrolling in List view
* Fixed SelectedItems property for selecting child items
* Fixed selecting item when item collection changed between MouseDown and MouseUp events (e.g. during DoubleClick)
* Added column hiding feature (Visible property)
* Optimized column resizing and sorting with many items
* Fixed label editing when MultiSelect is false
* Fixed reordering item into another item in another group as a child
* Fixed setting focused item after Drag and Drop, item reordering or position binding when the control is in update state
* Added groups support
* Added hierarchical item support
* Added multi-line item support
* Added data binding
* Added DateTimePicker label editing
control
* Added ItemWidth and ItemHeight layout
properties to customize item size
* Added adjustable padding for each element part, element and whole layout
* Added type conversions between BetterListViewEmptyText and String
* Added type conversions between BetterListViewToolTipInfo and String
* Added TileSize property (item sizes in any other views - including the Tile view - can be set via layout settings)
* Added Horizontal grid lines (can be visible even when columns are hidden)
* Added GetItemNearest methods to get item nearest to the specified location
* Added 'virtual' sorting (SortVirtual property)
* Added AfterLabledEditCancel event to allow cancelling label editing after the value has been commited by the user
* Added CLS-compliance
* Added missing XML comments
* Content can saved/loaded to/from binary/XML format
* Objects can be added to Better ListView collections, the control will auto-convert them
* Extended item reordering capabilities
* Extended insertion mark display options (enabled/disabled state, level in item hierarchy)
* Sub-items and groups can be focused and the focus information can be retrieved for each element type
* Items can be enumerated regardless of item hierarchy through IEnumerable
* Maximum allowed lines of text can be set for items
* Changed type of some item collections
from ReadOnlyCollection
* Extended sorting capabilities (range sorting, sorting up to specific items)
* Nonclickable columns can be reordered
* AllowColumnResize functionality moved to property BetterListViewColumnHeader.AllowResize (per-column basis)
* Default view changed to 'Details'
* FullRowSelect property is 'true' by default
* Improved performance of thumbnail images display
* Improved performance when working with sorted list
* Improved performance of Contains and RemoveRange methods in element collections
* Synchronized BeginUpdate/EndUpdate methods for thread safety
* Column header area is not displayed when there are no column headers to save space
* Vertically centered item content in Details view
* Fixed cancelling label edit when calling BetterListView.Focus() in AferLabelEdit, AfterLabelEditEmbeddedControl event handlers
* ISerializable and IXmlSerializable implementation in elements and collection classes made explicit
* Fixed locked label edit state when right-clicking on Better ListView while label editing
* Fixed incorrect behavior of InsertRange method in element collections
* Fixed possible bug when deserializing items with sub-items using BinaryFormatter
* Fixed possible bug when using sub-item collection of deserialized item
* Fixed switched visual style elements of middle and right column headers (might become visible in custom themes)
* Fixed hit test for column headers which are both nonclickable and nonresizable
* Fixed not displaying hot state of
elements when another control captured mouse
* Fixed occasional flicker when checking a hot or focused item
* Fixed hot state of item check box when checked by mouse (only item being checked can display check box in hot state)
* Fixed EnsureVisible(Rectangle) when client size is smaller than the specified area
* Fixed searching with prefix preference and without search limit
* Fixed AutoResizeColumns not using BeginUpdate/EndUpdate method, thus causing visible redrawing
* Fixed possible flicker or hanging in update state when refreshing or exception thrown in mouse and keyboard event handlers
* Fixed not refreshing control when BackgroundImageLayout property changed
* Fixed Visual Studio 2008 toolbox auto-loading
* Fixed ArgumentException occuring in LargeIcon View in some rare cases
* Drag selection is now allowed even when the control does not contain any items
* Added SuspendSort(), ResumeSort(), IsSortSuspended members for controlling sorting while updating control
* Added immediate drop down when using combo box embedded control (enabled by default)
* Added separate measurement of sub-item images
* Added sorting items through BetterListView.Sort() when no column are displayed
Immediate label editing on SingleClick activation
* Method HitTest() without arguments made public
* Method ReorderColumns(int, int, bool) made public
* Fixed label editing sub-items when LabelEditItems was set to None
* Fixed removing embedded control when scrolling during label-editing
* Fixed hiding label edit control when Better ListView loses focus
* Fixed setting proper cursor during Drag and Drop operation immediately when AllowDrop is set to false
* Fixed raising ColumnWidthChanged event only when column width actually changes
* Fixed adjusting rendering with visual styles when theme has changed in run-time
* Fixed breaking of text that contains CR or LF characters alone
* Fixed item text color when BetterListViewItem.IsCut is set to true
* Fixed column headers being too high in rare cases
* Fixed black area flashing when calling Refresh() while resizing control and SetRedraw was called to suppress redrawing
* Fixed display of ampersand (&) characters within "empty text", items, column headers
Seamless integration with .NET 2.0 and higher