Ended support for .NET Framework versions below 4.6.
Ended support for Visual Studio versions below 2017.
Removed the VB.NET version of the Samples Suite. Only C# code samples are now provided.
Default column header height increased from 20px to 28px.
New Features
Added support for .NET 6.0 - 8.0.
Added support for .NET Framework 4.6 - 4.8.
Added support for Visual Studio 2017, 2019, 2022.
Revamped documentation is now available online and offline with installation.
Improvements
Refactored the entire codebase to serve as a foundation for future features..
Enhanced the licensing mechanism to reduce errors when using the product.
Legacy bugs fixed that increased overall stability.
Version 5.1
Oct 17, 2016
New features
The Ctrl+click and Shift+click
actions now adhere to the Options.Selection.SelectionMode setting.
Improvements
The NodePopulating treeview event now triggers when a new data source item is added in bound mode.
Handles the scenario when the parent form is closed from a treeview event handler.
Bug fixes
A child node's ControlContainer is not displayed if the child node is attached to a detached parent node.
The application freezes when disposing of the treeview with many nodes.
Hidden nodes were not detached from the parent node when the treeview was cleared.
An ArgumentException is thrown when both parent and child nodes are shown and hidden sequentially.
The CreateBoundNode treeview method was not called in bound mode when a new data object was added to the data source.
Version 5.0
Apr 24, 2016
New features
Added node visibility filtering capability.
Improvements
Introduced the CreateBoundNode treeview method to override the bindable node in bound mode.
Bug fixes
Fixed the issue where the node control's wrap state was not considered when calculating the auto-sized column width.
Version 4.3
Jan 4, 2016
New features
Support for .NET 4.6 and Visual Studio 2015 added.
NodeMarker node control introduced.
NodeComboBoxString node control introduced.
Support for min & max values in NodeDateTime's editor added.
Support for Nullable<DateTime> data type in NodeDateTime added.
NodeDateTime.PlaceholderText property introduced.
Improvements
Use DataColumn.Caption value, if defined, for auto-generated columns in data-bound mode.
Improved treeview rendering performance when handling non-IConvertible data types in bound mode.
NodeImage node control now supports the more generic System.Drawing.Image data type instead of System.Drawing.Bitmap.
Bug fixes
HtmlTextHelper.TextToHtml produced incorrect results when converting HTML text with < and & symbols.
NodeDateTime crashed when editing a dummy 1/1/1001 date.
Version 4.2
May 25, 2015
New features
The NodeCheckBox node control now supports boolean properties in bound mode.
Bug fixes
The license installation window is cropped when the system font size is increased.
An unhandled exception occurs when editing a DBNull value in bound mode.
Version 4.1
Mar 6, 2015
New features
Added support for transparent backgrounds in Treeview.
Added support for the background-color HTML tag.
Enabled tracking of the Treeview's horizontal scroll position.
Allowed overriding the DataProvider for each summary.
Enabled overriding the condition for when an expandable control becomes expanded.
Allowed substitution of the tree column instance when binding data by overriding the CreateBoundColumn Treeview method.
Enabled showing the columns selection form from the code.
Improvements
Added regex support for the FindChildNodeByText and FindChildNodesByText node methods.
Bug fixes
Fixed memory leak during Treeview disposal.
Resolved issue where the bound DataTable change tracking mechanism produced duplicate nodes when the DataTable was re-bound multiple times.
Version 4.0
Dec 15, 2013
New features
The column controls were added to decorate the column header with quick-action buttons.
The NodeButton node control was introduced to display a button inside the node.
The ability to clone the BindableNode class instance was implemented to support copy-paste functionality in bound mode.
Nodes can now be expanded even if they are not added to the treeview or don't have child nodes.
The eNodeControlFilterMode.UseVisibility mode was introduced to filter node controls' visibility using their Visibility property.
The Node.Tag property was added to store any user-defined data linked to a particular node.
NodeCheckBox node control now supports boolean and Nullable<boolean> data types in unbound mode.
The Node.FindChildNodesByText method was added to find child nodes by their Text.
The NodeEditorAdjust treeview event was added to manually adjust the node editor location when a user starts editing the node field.
Improvements
The double and byte data types are now supported in bound mode.
Major improvements in treeview databinding when using the DataBindingElementAttribute attribute.
When text wrap mode is enabled, 'new line' delimiters (\r\n, \r, and \n) are now supported.
Search capabilities in treeview columns have been improved.
The treeview.Columns.Find(point) and treeview.Columns.GetColumnAt methods have been added.
An unbound node control now retrieves values from the bound object instead of the BindableNode instance.
The MouseActionArgs.Column property was added to indicate the column where the mouse cursor was located at the event's time.
Bug fixes
Treeview freezes when child nodes are added dynamically to a lazy-loaded parent node while the mouse is over the treeview.
A NullReferenceException is thrown when the treeview is bound to a sortable data source.
Treeview crashes when the node controls list is cleared while the mouse is moving over the treeview.
Version 3.7
Mar 8, 2013
New features
Support for .NET 4.5 and Visual Studio 2012 added.
Support for the IMG HTML tag added.
The NodeComboBoxEnum control added to display and edit enum data fields without extra coding.
MinHeight and MaxHeight properties added to limit the node's maximum and minimum height when AutoNodeHeight mode is enabled.
Colors.SummaryColorCollection added to override summary theme colors at design time.
Ability to inject a custom node control when binding the data source.
Improvements
Out-of-the-box support added for bound fields of Enum data type.
Disabled nodes will no longer change the mouse cursor to a hand over an HTML link.
Version 3.6
Oct 20, 2012
New features
The NodeColumnBackground node control has been added to customize the node background.
The NodeProgressBar.StartColorFieldName and EndColorFieldName properties have been introduced to bind and customize the progress bar colors for each node.
Improvements
The Node.Find<T> method has been added to locate nodes of a specified type using a predicate.
It is now possible to inject a data converter between the bound data source and the treeview for bidirectional auto-conversion of unsupported data types.
Added the ability to override the NodeProgressBar bar's colors per theme for all nodes in the treeview.
Bug fixes
A NullReferenceException is thrown when refreshing the data source while the mouse hovers over the treeview.
When a new data object is added to a bidirectional data source, the newly created node's Id property is not set with the corresponding value from the data object.
The NodeComboBox.MaxDropDownItems property value was not utilized correctly.
The field specified in DataBinding.ParentFieldName wasn't updated when moving the node among other child nodes in the new parent in data-bound and bidirectional modes.
New data objects are created in the attached data source if BoundMode=false but BidirectionalMode=true, instead of updating the existing object.
Not all child nodes were moved to the new parent node when removing the old parent node, and the treeview is bound to a data source.
Version 3.5
May 21, 2012
Breaking changes
The Node.IsVisible property has been renamed to IsRowVisible.
New features
The DataBindingElementAttribute.ReadOnly property has been added to bind read-only properties to the treeview.
Improvements
The CurrentEditor treeview property has been exposed to get a node control that currently shows its editor.
The TreeColumn.Bounds property has been exposed to get the column bounds.
Bug fixes
The NodeColorPicker node control requests the node property instead of the bound data object in a bound treeview.
The treeview cursor is not restored after the column is resized.
The treeview layout breaks when the last visible column is hidden.
The NodeComboBox node control's editor commits changes immediately after the selected item changes, without waiting for user confirmation.
An InvalidOperationException may be thrown when the treeview is frequently redrawn and contains a NodeControlContainer node control.
The HtmlTextHelper.TextToHtml method does not convert the symbol '&' in the supplied text into the correct HTML representation.
A bound data row enters the 'Deleted' state when moving the node by drag & drop or through code.
Poor performance of a bound treeview in debug mode.
The IsBeforeAction argument of the KeyDown and KeyUp treeview events is always TRUE.
Compilation error in C++ projects.
The Samples Suite project starts slowly under the VS debugger.
Version 3.4
Dec 6, 2011
New features
Interactive check state is now supported in data-bound mode.
The NodeCheckBox control now supports binding to bool, Nullable<bool>, int, Nullable<int>, and eCheckState property types.
Improvements
The Interactive check state calculation algorithm now excludes nodes with hidden NodeCheckState control.
Bug fixes
Fixed .NET 4.0 Client Profile application build error when referencing the Flexible TreeView assembly.
Hidden node controls no longer appear in the drag & drop thumbnail image.
Resolved NullReferenceException in Node.AddRange method when called on a node not added to the treeview.
Fixed exception thrown when clicking an attached control that cannot be focused.
Resolved NullReferenceException in treeview during simultaneous structure change and redraw operation.
Version 3.3
Sep 20, 2011
New features
Separate built assemblies for .NET 2.0, 4.0, and 4.0 Client Profile are now included with the installation.
NodeCheckBox node control now displays highlighted icons when the mouse hovers over it.
Option to override hot icons used by the NodeCheckBox node control.
The <tab [width='xx']> HTML markup tag is added to insert tabs into HTML formatted text.
Improvements
NodeComboBox node control now automatically shows the drop-down list when node editing starts.
Bug fixes
The treeview.Nodes.Clear method didn't clear the SelectedNode/FocusedNode values.
Node control's custom cursor was not considered and changed to default when clicked.
Version 3.2
Aug 23, 2011
Breaking changes
All data source fields with the same DataBindingElementAttribute.DisplayName value are now displayed in one column.
The Treeview.Columns.GetColumns method has been renamed to FilterColumns to clearly reflect its purpose.
New features
Bidirectional (two-way) data binding has been added.
The DataBindingElementAttribute.AutoSizeColumn property has been added to automatically size the generated columns in bound mode.
Bug fixes
The node with an attached user control did not clear the current selection when this control was clicked.
Version 3.1
Jul 17, 2011
New features
Treeview.PageScrollRowCount property added to define the number of rows to scroll when the PageUp or PageDown keys are pressed.
Improvements
Ability to override the column header text and icon appearance by overriding the DrawText and DrawImage methods of TreeColumn was added.
Bug fixes
Treeview with an animated NodeImage node control hangs when disposed.
Incorrect width calculation of the auto-sizable column.
Exception thrown when the node is collapsed while the mouse is under a child node.
Incorrect node controls layout when they span columns and a node control before the plus-minus symbol is present.
Child nodes are invisible for a parent with load-on-demand enabled in some cases.
Treeview does not expand the node with load-on-demand enabled when the Right key is pressed.
Node editor is not hidden when a modal window is displayed from the NodeEdited event handler.
The plus-minus symbol is displayed in the drag-and-drop thumbnail image when it should not be.
Version 3.0
Apr 30, 2011
New features
Added SmartVerticalScrollSpeedFactor treeview property to control smart vertical scroll speed.
Introduced NodeIndexChanged treeview event to notify when the node index changes.
Added Find(Func<Node,bool> predicate) node method to search nodes using a predicate.
Improvements
Enhanced performance when adding numerous nodes to the treeview.
Improved performance when handling large data sources in the treeview.
NodeInserted and NodeRemoved treeview events now trigger when the node's parent changes.
NodeCheckBox control now triggers NodeEditValidate and NodeEdited treeview events when the node check state changes.
Added 'Node. Load on demand' Knowledge Base topic.
Added 'Treeviews performance comparison' Knowledge Base topic.
Bug fixes
Incorrect node editor position when user interaction occurs before the editor is displayed.
The 'Access to the disposed object' exception was thrown when starting to edit a node in the recreated treeview.
Disrupted node layout in the treeview with multiple node levels.
Incomplete row background update when using the Node.Invalidate method.
Error when multiple treeviews are bound to the same data simultaneously.
Error when multiple data-bound treeviews are created simultaneously.
Incorrect data binding result to an image property in certain cases.
Incorrect scroll position when scrolling with the mouse wheel in an unfocused treeview.
Version 2.8
Nov 19, 2010
Breaking changes
The Treeview.DragDropOptions.AutoMoveNodes property has been replaced with the DropAction property, featuring Notify, AutoMove, AutoCopy, and AutoMoveOrCopy modes.
The DragDropState.RealNode treeview property has been renamed to RealTargetNode.
New features
The ability to move the plus-minus symbol to columns other than the first has been added.
The ability to display node controls on the left side of the plus-minus symbol has been added.
The NodeImage.HoverDataFieldName property has been added to automatically display another image when the node control is under the mouse cursor.
The NodeImage.UseHoverImageForSelectedNode property has been added to use hover images for selected or focused nodes.
The eEditStartMode.ClickOnSelected mode (an option for the EditStartMode node control property) has been added to start editing only when a selected or focused node is clicked.
The LicenseManager console application has been added to manage Flexible TreeView licenses in corporate environments or on build machines where Visual Studio is not installed.
Improvements
The NodeEdited treeview event contract has been expanded and now provides the old and new values of the node-bound member.
Double-clicking on the editable node control no longer starts editing of this node control.
Treeview performance has been improved when node controls are bound to non-existing node members.
Bug fixes
The color editor didn't automatically apply color changes when the mouse cursor hovered over the color box.
An exception was thrown within the MouseUp event handler when the mouse-down logic was customized by user code.
An exception occurred when a non-selected node was focused in the treeview with activated selection validation.
The node control editor didn't update its position properly when another node was highlighted.
Version 2.7
Aug 1, 2010
Breaking changes
The treeview now retains selection when the mouse is clicked on a selected node.
New Features
Data binding support has been completely reimplemented.
Improvements
The NodeCheckBox node control can now be bound to a boolean field in addition to the eCheckState.
Bug fixes
An exception was thrown when the user right-clicked on the non-column space.
An exception was thrown in some cases when disposing of the treeview control.
The expandable control did not store the title font style properly.
The treeview crashed when the Home or End keys were pressed with no focused node.
Version 2.6
May 13, 2010
New features
Added support and integration for Visual Studio 2010.
Significantly improved bound data access speed.
Introduced the NodeDateTime node control to display and edit date/time values in the treeview.
Added the FillFreeSpace column property to auto-stretch the last column, filling all available treeview space.
Included the NodeEditorHidden treeview event.
Improvements
Node control value editing initiated by a hotkey (NodeControl.EditHotKey) now starts without the delay specified in the EditStartDelay treeview property.
Bug fixes
Resolved issue where treeview didn't start editing if the data was empty.
Corrected node order when sorting data using the NodeNumeric node control.
Fixed incorrect display of entered digits in the NodeNumeric edit control.
Version 2.5
Mar 13, 2010
Breaking changes
The IsSimpleSelection treeview property has been renamed to HasSimpleSelection.
New Features
The NodeProgressBar node control has been added to display the progress bar in the treeview.
The CreateDragDataObject treeview method has been added to customize the drag & drop data type and content, allowing nodes to be dropped into external applications.
The IAttachableControl interface has been added to dynamically interact with custom controls attached through the ControlContainer.
The Invalidate node method has been added to update only a specific node in the treeview.
The AllParentNodes node property has been added to easily enumerate a node's parent nodes.
The IsChecked node property has been added to quickly check if the node is checked.
Improvements
The HotNodeChanged treeview event's contract has been extended to provide information about the previous and new hot node.
Bug fixes
The HotNodeChanged treeview event is raised twice when the mouse hovers over the column header.
NodeCheckBox doesn't update the bound property when the node check state changes.
The treeview crashes when a node with attached controls is detached.
The StackOverflowException is raised during a drag & drop operation from an external application.
The treeview doesn't scroll with the mouse wheel under specific mouse settings.
The treeview doesn't hide the node editor when scrolled by the scroll bar.
Version 2.3
Jan 4, 2010
Breaking changes
The 'TreeView' node, node control, and column properties were renamed to 'Treeview' to maintain consistency with other classes.
New features
The ColumnSpan node control property was added to allow the node control to span a specified number of columns.
The Wrap node control property was added to display the node control below all sibling node controls.
The Options.NodeControl.DynamicColumnSpan treeview property was added to dynamically control the node control's column span value.
The NodeControlColumnSpan treeview event was added to dynamically set the node control's column span value.
The Visibility and VisibilityManager node control properties were added to specify the node control's visibility within the node with different states.
The ImageAlign column property now has the eColumnImageAlign type, and a new alignment called Center has been added to center the column image.
The IsHot node property was added to check whether the node is currently under the mouse cursor.
The IsVisibleForNode node control method was added to manually control the node control visibility for every node.
The eObjectVisibility.GeneralNode mode was added to display a node control or control container for a node that's not selected, not focused, not hot, and not soft selected.
The IHtmlTagInspector interface was added to control the appearance of every HTML tag shown in the treeview.
Improvements
Enhanced performance when using the visibility manager in the treeview with multiple nodes.
Bug fixes
Nodes did not display summaries correctly.
Unable to deselect the most recently selected node when the AllowEmptySelection treeview option is enabled.
The SelectionChanged treeview event was not triggered when an already selected node was focused in the treeview with multi-selection enabled.
Version 2.1
Nov 30, 2009
Bug fixes
The custom hosted controls were not visible in the treeview.
Version 2.0
Nov 22, 2009
Breaking changes
The eNodeControlVisibility type has been relocated from the ARMSoft.FlexibleTreeView.Nodes namespace to ARMSoft.FlexibleTreeView.NodeControls.
New Features
Added support for summaries to display aggregation operation results.
Introduced the NodeSeparator node control to show a horizontal separator line within the node.
Added the PaintRowBackground treeview event to override the background of each node.
Introduced the IndexableNode class to easily instantiate a node with an identifier.
Improvements
The SelectionChanged treeview event now triggers when a node is detached from its parent node.
The NodeControl.ExcludeFromSelection option can now be applied in Partial highlight mode as well.
Bug Fixes
An empty node instance was being passed to the NodeControlPopupShowing event parameter.
Node controls in hidden columns were considered when calculating node height, which should not occur.
Incorrect node index in some cases when reordering nodes via drag & drop.
Arithmetic overflow exception on Windows 7 when scrolling the treeview with the mouse wheel.
The color/gradient property designer raised an exception in certain cases.
Version 1.4
Sep 5, 2009
New features
The DragDropOptions.AllowReorder property has been added to enable users to easily reorder nodes via drag & drop (multi-selection is supported) when AutoMove is enabled.
The column's context menu has been added.
Support for the <s> HTML tag has been added to display strikeout text.
The Node.Deselect method has been added to deselect a selected node.
The DoDragDropNodes treeview method has been added to initiate the drag & drop process programmatically.
Popupable node control improvements:
The AutoFocus node control property has been added to automatically focus the popup's control when it is shown.
The NodeControlPopupShow treeview event has been replaced by the NodeControlPopupShowing and NodeControlPopupShown events, which are triggered before and after the popup is shown, respectively.
The Select(Node[]) treeview method has been added to select multiple nodes with a single method call.
The LocalizeText treeview event has been added to facilitate easy localization of the text used in the treeview.
The Options.Node.FocusOnControlClick treeview property has been added to focus on the node when an attached custom control is clicked.
The Checked node property has been added to easily change the node's check state.
Improvements
When a custom control attached to a node gains focus, the parent node hosting that control will also gain focus if it was previously unfocused.
The OnDragDrop treeview event is now triggered even if the node's auto-move feature is enabled, to indicate that the drag & drop process is complete.
API improvements:
The Selected node property has been renamed to IsSelected, and the setter was removed. To select a node, use the Select node method.
The Focused node property has been renamed to IsFocused, and the setter was removed. To focus a node, use the Focused node method.
Bug fixes
Incorrect text size calculation in certain cases.
Incorrect retrieval of NodeComboBox drop-down items when an interactive dropdown list is enabled.
MouseMove node control didn't call properly during node drag & drop.
Incorrect selection state of nodes when detached.
The NodeControlContainer node control displayed the attached control in the wrong place when drag & drop started.
The treeview doesn't allow dragging multiple selected nodes if no node is focused.
The treeview retains the 'deny' cursor when drag & drop is finished if the drop was denied.
The NodeComboBox node control throws an exception on edit start when bound to an unknown class member.
Version 1.3
Jun 4, 2009
Breaking changes
The eCheckType.RadioBox has been renamed to eCheckType.RadioButton.
The ThemeManagerOffice2007 has been renamed to ThemeManagerOffice2007Blue for future enhancements.
The NodeControlValueGet treeview event contract has been modified to be more flexible, allowing partial overrides of the node control content.
The Options.Column.AllowMultiColumnSort treeview property has been moved to the TreeView.Options.Sorting class.
New features
The NodeWithAnimImage class was added to display animated images within the NodeImage node control.
The Options.Sorting.AutoReSort treeview property was added to re-sort the nodes when the treeview structure or content changes.
Image animation support was added to the NodeImage node control.
The FadeOutImageAnimation class was added to easily fade out the image animation in the NodeImage node control.
The SequenceImageAnimation class was added to perform sequential image animation in the NodeImage node control.
The NodeLink node control was added to easily display text as a hyperlink.
The AttachToColumn node control method was added to link a node control to a column using the column instance instead of its identifier.
Node styles were extended with colors for a disabled node.
The design-time editor for the ColumnId node control property was added to easily bind the node control to a column.
The NodePaintBox node control was added to display completely custom content (like an image, text, etc.) within the node.
The NodeWithColor node class with the Color property was added for easy use with the NodeColorPicker node control.
The NodeWithGradient node class with the Gradient property was added for easy use with the NodeColorPicker node control.
The NodePopupContainer node control was added to pop up custom content (user controls, images, etc.) upon a mouse click.
The Cursor property was added to all node control classes to customize the mouse cursor over a node control.
The NodeColorPicker node control has been added to select a color or color gradient from the Office2007 styled color picker.
The OnChanged node's virtual method has been added to notify derived classes about node changes.
The NodeControlContainer node control has been added to display custom controls inside a node.
The NodeExpandableControlContainer expandable node control has been added to display custom controls inside the node control's expandable area.
The NodeWithControl node class has been added to easily display custom controls inside a node using the NodeControlContainer or NodeExpandableControlContainer node controls.
The GetNodeFieldValue node control method is now exposed to retrieve node data within the TreeView.NodeControlValueGet event for node control content customization when NodeControl.VirtualMode is enabled.
The ViewUpdate treeview method is now exposed to allow quick updates to the treeview with lower overhead when non-essential elements (colors, gradients, etc.) have changed.
The HtmlTextHelper.HtmlToText method has been added to convert HTML text to raw text with automatic HTML tag conversion.
The Options.Selection.FocusNodeOnLinkClick treeview property has been added to auto-focus the node when a hyperlink is clicked inside that node.
The VertScrollPosChanged treeview event has been added to monitor changes in the treeview's vertical scrollbar position.
The Flash node method was added to quickly 'flash' the node and catch a user's eye on it.
The ExpandChildren(bool pExpandSelf, int pExpandLevel) node method was added to expand child nodes up to the specified depth level.
The CollapseChildren(bool pCollapseSelf, int pCollapseLevel) node method was added to collapse child nodes up to the specified depth level.
The HotNodeChanged treeview event was added to easily monitor the nodes under the mouse cursor as it moves over the treeview.
The AttachTo node control method was added to easily attach a node control to a treeview at runtime.
TextEnabledSolidColor/TextEnabledInactiveSolidColor/TextDisabledSolidColor properties were added to the text node controls and node styles to easily adjust the colors of the enabled, enabled inactive, and disabled object states.
The Style.Weak node property was added to decide how to combine the node style with the treeview settings.
The NodeWithLink node class was added for easy integration with the NodeLink node control.
Improvements
The ColumnSortOrderChanged event parameters now include a list of sorting node controls.
The Colors property for the description text of the expandable node control within the selected, focused, or hot node has been added to TreeView.Colors.NodeControl.ExpandableControl for future enhancements.
Bug fixes
Sorting a detached node throws an exception.
Incorrect node check initial state when load on demand is enabled.
The TreeComboBox throws an exception in the VS designer.
The ThemeManager throws an exception when running on Windows with the classic theme enabled.
Incorrect selection source in the SelectionChanged event when the mouse is clicked with Control or Shift keys pressed.
Broken treeview license when the application file name is changed.
The VertScrollPos treeview property change doesn't update the vertical scrollbar position properly.
A node with zero height causes the treeview to display incorrectly.
Deselecting a node with dynamic height doesn't recalculate the node height in some cases.
Selecting nodes with the mouse in an empty treeview throws an exception.
The Style node's property changes do not auto-update the treeview.
A node control does not start editing with a keyboard shortcut.
Incorrect node height calculation when changing the text wrap mode in the treeview without columns.
Node doesn't show custom background gradient properly.
Treeview did not auto-expand the selected or focused node during drag & drop.
The NodeNumeric node control threw an exception during editing when DecimalPlaces was set to -1.
Incorrect treeview content width calculation occurred when a node control with FillFreeSpace enabled was present.
Version 1.2.1
Mar 29, 2009
New features
Added a method to the Select node without parameters to simply select a node.
Introduced the ExcludeFromSelection node control property to exclude a node control from the selection area when the tree's highlight mode is ContentOnly.
Added a Sort node method with a custom node comparer parameter for more flexible node sorting.
Bug fixes
Fixed an exception thrown when changing the color gradient's angle.
Resolved an issue where the NodeImage node control wasn't displayed within the selected node when the treeview highlight mode was set to ContentOnly.
Corrected the issue where moving a node control between columns didn't re-sort the treeview.
Version 1.2
Mar 9, 2009
New features
HTML text rendering support has been added.
Support for auto-wrapping plain and HTML text has been added.
The TreeComboBox control has been added to display a treeview as a combo box's dropdown.
Scrolling of the treeview content is allowed even when it is not focused.
The ExpandedTitleStyle property has been added to the ExpandableTextBox and ExpandablePanel node controls to easily change the title's text style when expanded.
The ExpandableTextBox.DescriptionStyle property has been added to easily change the custom area's text style of the expandable node control.
The ExpandableControl.TitleAlign property has been added to align the title text within an expandable node control.
The NodeExpandableTextBox.DescriptionAlign property has been added to align the description text within an expandable node control.
The Weak property has been added to the TitleStyle, ExpandedTitleStyle, and DescriptionStyle properties of the expandable control for non-intrusive text style manipulations.
The DragDropSettings.AutoMoveNodes property has been added to move the dragging nodes without additional coding.
Column bounds are drawn during resizing.
The TreeView.Options.Sorting.GroupAlwaysOnTop property and TreeView.IsGroupNode event have been added to keep all "group" nodes on top when sorting.
The SelectionChanging event now includes arguments that describe how the selection was changed (programmatically, by mouse, or keyboard).
The StaticValue property has been added to the NodeTextBox and NodeNumeric controls to display static content instead of the node field value.
The FilterDragNodeControl event has been added to filter node controls when creating the drag & drop thumbnail image.
The FlexibleTreeView.DefaultNodeComparer setter has been added to override the default sorting behavior.
The FlexibleTreeView.VertScrollPos property has been added to manually scroll the treeview vertically.
The TreeColumn.GetPreferableColumnWidth() method has been added to ensure all column content is visible.
The Node.EnumerateParents method has been added to easily enumerate all parent nodes of a node.
The NodeWithImage.ImageOpacity property has been added to dynamically control the image opacity for each node.
The Options.Node.ShowRootPlusMinus has been added to show or hide the plus-minus symbol for root nodes.
The Options.Selection.SelectionMode.MultiSameLevel has been added to select only nodes of the same level.
The Options.Selection.SelectionMode.MultiSameParent has been added to select only nodes within the same parent.
Bug fixes
Set the column Text property with a default value when it attaches to the treeview.
Treeview displays the drop position mark even if drag & drop is denied.
Incorrect thumbnail image size on the first drag & drop.
Clicking a node control with the Shift key initiates the edit operation when it should only select the clicked node.
ColorGradient editor now applies changes only when the OK button is clicked.
The cursor doesn't change when the drop permissions are altered.
The cursor doesn't change when the Control key is pressed during drag & drop.
Drop is denied when the mouse exits and re-enters the treeview bounds.
Hiding (filtering out) the node control within a node didn't recalculate the node height.
The hot node wasn't invalidated when the treeview is scrolling and the mouse exits its bounds.
If AllowEmptySelection is enabled, a node can still be unselected by clicking on the empty space.
If a single node is selected but not focused, there's no way to make this node focused.
The last node isn't visible in the tree with an expandable node control when a node of smaller height is selected.
Moving the node to another parent node sometimes causes incorrect selection state restoration.
Non-visible node controls still appear in the thumbnail image during drag & drop.
Pressing the Left key doesn't select the previous node when a root-level node is selected.
Selecting a node with an expandable node control doesn't recalculate the treeview's content width.
Selecting nodes with the Shift key sometimes throws an exception.
ThemeManager doesn't allow customization of colors and color gradients due to the inaccessibility of those properties.
In some cases, the treeview doesn't clear selection when the Options.Selection.AllowEmptySelection option is enabled.
When the scrollbar is moving and the mouse is over a treeview, it highlights a node under the mouse cursor.
Incorrect auto-sizing result of the first treeview column when AutoFitColumns is enabled.
Incorrect column auto-sizing result because invisible node controls were not excluded.
Incorrect treeview content width calculation in the treeview without columns.
The treeview doesn't allow scrolling to the latest node when a node with an expandable node control is selected.