Flexible TreeView Changelog

What's new in Flexible TreeView 5.1.3

Dec 1, 2016
  • New features:
  • The Ctrl+click and Shift+click behavior now respects the Options.Selection.SelectionMode option.
  • Improvements:
  • The NodePopulating treeview event is now firing as well when a new data source item has been added in bound mode.
  • Handle the case when parent form is closed from a treeview event handler.
  • Bug fixes:
  • A child node's ControlContainer is not shown if child node was attached to a detached parent node.
  • Application freeze on disposing the treeview with many nodes.
  • Hidden nodes were not detached from parent node when treeview was cleared.
  • An ArgumentException is thrown in case both parent and children nodes are shown and hidden sequentially.
  • The CreateBoundNode treeview method has not been called in bound mode when a new data object is added to the data source.

New in Flexible TreeView 4.3 (Jan 6, 2016)

  • New features:
  • Visual Studio 2015 and .NET 4.6 support added.
  • NodeMarker node control added.
  • NodeComboBoxString node control added.
  • NodeDateTime's editor min & max values support added.
  • NodeDateTime support of Nullable data type added.
  • NodeDateTime.PlaceholderText property added.
  • Improvements:
  • Use DataColumn.Caption value, if defined, for auto-generated column while data binding.
  • Treeview rendering performance improvements while handling non-IConvertible data types in bound mode.
  • NodeImage node control now support more generic System.Drawing.Image data type instead of System.Drawing.Bitmap.
  • Bug fixes:
  • HtmlTextHelper.TextToHtml has produced an incorrect result when converting HTML text with both < and & tags.
  • NodeDateTime crashes when trying to edit a dummy 1/1/1001 date.

New in Flexible TreeView 4.2 (Jul 7, 2015)

  • NodeCheckBox node control now supports boolean properties in bound mode.
  • Documentation update.
  • Switch the SamplesSuite project to Visual Studio 2008 and .NET 4.0
  • An unhandled exception raised when trying to edit.

New in Flexible TreeView 4.1 (Mar 9, 2015)

  • New features:
  • Knowledge Base was merged with developer reference and available both online and in the installation.
  • Treeview transparent background support.
  • The background-color HTML tag support.
  • Ability to track the treeview horizontal scrolling.
  • Ability to override the DataProvider for each summary.
  • Ability to override the condition of when an expandable control became expanded.
  • Allow to substitute the tree column instance on data binding by overriding the CreateBoundColumn treeview method.
  • Ability to show the columns choose form from code.
  • Improvements:
  • Regex support for FindChildNodeByText and FindChildNodesByText node methods.
  • Bug fixes:
  • Memory leak while disposing the treeview.
  • The bound DataTable changes tracking produced duplicate nodes when the DataTable was re-bound multiple times.

New in Flexible TreeView 4.0 (Dec 16, 2013)

  • New features:
  • The column controls was added to decorate the column header with quick action buttons.
  • The NodeButton node control was added to display a button inside the node.
  • The ability to clone the BindableNode class instance was added to support the copy-paste functionality in bound mode.
  • Now on the node can be expanded even if it was not added to the treeview or has no children nodes.
  • The eNodeControlFilterMode.UseVisibility mode was added to filter node controls visibility using their Visibility property.
  • The Node.Tag property was added to hold any user-defined data bound to the particular node.
  • The NodeCheckBox node control support of boolean and Nullable data types in the unbound mode was added.
  • The Node.FindChildNodesByText method was added to search for the children nodes by their Text.
  • The NodeEditorAdjust treeview event was added to manually adjust the node editor location when user starts the node field edit.
  • Improvements:
  • The double and byte data types are now supported in the bound mode.
  • The treeview databinding major improvements when using DataBindingElementAttribute attribute.
  • When the text wrap mode is enabled the 'new line' delimiters (\r\n, \r and \n) are supported now and wrap the text behind them to the new line.
  • The treeview columns search possibilities improvements. The treeview.Columns.Find(point) and treeview.Columns.GetColumnAt methods were added.
  • An unbound node control not retrieves values from the bound object instead of BindableNode directly.
  • The MouseActionArgs.Column property was added that holds the column on which the mouse cursor was located at the time of the event.
  • Bug fixes:
  • Treeview freeze when children nodes being added dynamically to a lazy loaded parent node and having the mouse over the treeview.
  • The NullReferenceException is thrown when binding a sortable data source.
  • Treeview crashes when the node controls list is cleared while mouse is moving over the treeview.

New in Flexible TreeView 3.7 (Mar 8, 2013)

  • New features:
  • Visual Studio 2012 support added.
  • .NET 4.5 support added.
  • The IMG HTML tag support added.
  • The NodeComboBoxEnum node control added to display and edit enum data fields with no additional coding.
  • The MinHeight and MaxHeight node properties were added to limit node maximal and minimal allowed height when the AutoNodeHeight mode is enabled.
  • The Colors.SummaryColorCollection treeview colors collection added to override summaries` theme colors in design-time.
  • Ability to inject a custom node control when binding the data source.
  • Improvements:
  • The bound fields of Enum data type out-of-the-box support has been added.
  • The node now would not change the mouse cursor to the Hand under a HTML link if node is disabled.

New in Flexible TreeView 3.6 (Feb 11, 2013)

  • New features:
  • The NodeColumnBackground node control has been added to customize node background.
  • The NodeProgressBar.StartColorFieldName and EndColorFieldName properties have been added to be able to bind and customize the progress bar colors per node.
  • Improvements:
  • The Node.Find method has been added to search nodes of the specified type with a predicate.
  • Posibility to inject a data converter between the bound data source and treeview for bidirectional auto-conversion of the treeview unsupported data types back and forth.
  • Added possibility to override the NodeProgressBar node control`s bar colors per theme for all nodes in the treeview.
  • Bug fixes:
  • The NullReferenceException exception is thrown when refreshing the data source and mouse is staying over the treeview.
  • Newly created node`s Id property is not filled with the corresponding value from the data object when a new data object added to a bidirectional data source.
  • The NodeComboBox.MaxDropDownItems property value was not used properly.
  • The value of the field which name is specified in the DataBinding.ParentFieldName wasn`t updated when moving the node between 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 existing object.
  • Not all children nodes were moved to the new parent node when removing old parent node and treeview is bound to a data source.

New in Flexible TreeView 3.5 (May 22, 2012)

  • New features:
  • The DataBindingElementAttribute.ReadOnly property has been added to bound readonly properties to the treeview.
  • Improvements:
  • The CurrentEditor treeview property has been exposed to get a node control that is currently shows the editor.
  • The TreeColumn.Bounds property was exposed to get the column bounds.
  • Breaking changes:
  • The Node.IsVisible property has been renamed to IsRowVisible.
  • Bug fixes:
  • The NodeColorPicker node control requests the node property instead of bound data object in the bound treeview.
  • The treeview cursor is not restored sometimes after the column resize.
  • The treeview layout broken when last visible column is hidden.
  • The NodeComboBox node control`s editor commits changes right after the selected item has changed, not awaiting for confirmation from user.
  • The InvalidOperationException exception may be thrown when treeview is intensively redrawn and has a NodeControlContainer node control.
  • The HtmlTextHelper.TextToHtml method does not convert symbol '&' within supplied text into a correct html representation.
  • Bound data row become in 'Deleted' state when moving the node by d&d or from code.
  • Bad performance of a bound treeview in debug mode.
  • The KeyDown and KeyUp treeview events` IsBeforeAction argument always has value TRUE.
  • Compilation error in the C++ projects.
  • The Samples Suite project starts slowly under VS debugger.

New in Flexible TreeView 3.4 (Dec 17, 2011)

  • New features:
  • Interactive check state in data bound mode now is supported.
  • The NodeCheckBox node control now supports binding to bool, Nullable, int, Nullable and eCheckState property types.
  • Improvements:
  • The Interactive check state calculation algorithm now doesn`t take into account nodes with hidden NodeCheckState node control.
  • Bug fixes:
  • .NET 4.0 Client Profile application build error when Flexible TreeView is referenced.
  • Hidden node control still appear in the drag & drop thumbnail image.
  • The Node.AddRange method throws NullReferenceException exception when called for a node that is not added to the treeview.
  • Exception thrown when an attached control that cannot receive focus was clicked.
  • The treeview throws NullReferenceException exception when his structure being changed and redraw operation occurs simultaneously.

New in Flexible TreeView 3.3 (Sep 24, 2011)

  • New features:
  • Separate built assemblies for .NET 2.0, 4.0 and 4.0 Client Profile.
  • NodeCheckBox node control now shows highlighted icons when the mouse hovers over the node control.
  • Possibility to override hot icons used by the NodeCheckBox node control by custom images has been added.
  • The new HTML markup tag has been added to insert tabs into a HTML formatted text.
  • Improvements:
  • NodeComboBox node control now automatically shows the drop down list when node edit started.
  • Bug fixes:
  • The treeview.Nodes.Clear method didn`t clear SelectedNode/FocusedNode values.
  • Node control`s custom cursor was not taken into account and changed to default when the node control was clicked.

New in Flexible TreeView 3.2 (Aug 24, 2011)

  • New features:
  • Bidirectional (two-way) data binding.
  • The DataBindingElementAttribute.AutoSizeColumn property added to autosize generated columns in bound mode.
  • Breaking changes:
  • All data source fields with the same DataBindingElementAttribute.DisplayName value now shown in one column.
  • Treeview.Columns.GetColumns method was renamed to FilterColumns to clearly reflect the method purpose.
  • Bugs:
  • The node with an attached user control didn`t clear current selection when this control is clicked.

New in Flexible TreeView 3.1 (Jul 18, 2011)

  • New Feature:
  • Treeview.PageScrollRowCount property has been added to define the amount of rows to scroll when the PageUp or PageDown keys was pressed.
  • Improvement:
  • Possibility to override the column header text and icon appearance by overriding the DrawText and DrawImage TreeColumn methods.
  • Bug:
  • Flexible TreeView with animated NodeImage node control hangs when disposed.
  • Wrong width calculation of the auto-sizable column.
  • Exception is raised when node is collapsed while the mouse was under a child node.
  • Wrong node controls layout when they span columns and a node control before the plus-minus sign is present.
  • Child nodes are invisible for a parent with load-on-demand enabled in some cases.
  • Treeview do not expand the node with the load-on-demand enabled when the Right key is pressed.
  • Node editor is not hidden when a modal window was displayed from the NodeEdited event handler.
  • The plus-minus sign was displayed in the drag&drop thumbnail image while should not.

New in Flexible TreeView 3.0.1 (May 5, 2011)

  • New Feature:
  • SmartVerticalScrollSpeedFactor treeview property added to be able to control the smart vertical scroll speed.
  • NodeIndexChanged treeview event has been added to notify about node index changes.
  • The Find(Func predicate) node method has been added to search for nodes with a predicate.
  • Improvement:
  • Performance improvements when adding many nodes to the treeview.
  • Performance improvements when working with big data sources in the treeview.
  • NodeInserted and NodeRemoved treeview events now raised when node parent has changed.
  • NodeCheckBox node control now raises the NodeEditValidate and NodeEdited treeview events when user changes node check state.
  • 'Node. Load on demand' Knowledge Base topic has been added.
  • 'Treeviews performance comparison' Knowledge Base topic has been added.
  • Bug:
  • Wrong node editor position when user interaction take in place before editor was shown.
  • 'Access to the disposed object' exception raised if start edit node in the recreated treeview.
  • Broken nodes layout in the treeview with many node levels.
  • Row background incomplete update when using Node.Invalidate method.
  • Error when many treeviews bound to data simultaneously.
  • Error when many data bound treeviews created simultaneously.
  • Wrong an image property data binding result in some cases.
  • Wrong scroll position when scrolling using the mouse wheel in the unfocused treeview.

New in Flexible TreeView 2.8 (Nov 21, 2010)

  • New Feature:
  • An ability to move the plus-minus sign into other non-first columns has been added.
  • An ability to display node controls on the left side of the plus-minus sign has been added.
  • NodeImage.HoverDataFieldName property has been added to auto-display other image when node control is under the mouse cursor.
  • NodeImage.UseHoverImageForSelectedNode property has been added to use hover images for selected/focused nodes.
  • eEditStartMode.ClickOnSelected (option for the EditStartMode node control property) mode has been added to start edit only when an already selected or focused node has been clicked.
  • Improvement:
  • NodeEdited treeview event contract has been expanded and now provides node member`s old and new values.
  • Double click on the editable node control do not starts edit of this node control now.
  • Treeview performance has been increased when node controls are bound to non-existing node`s members.
  • Breaking change:
  • Treeview.DragDropOptions.AutoMoveNodes property has been replaced with the DropAction property with Notify, AutoMove, AutoCopy, AutoMoveOrCopy modes.
  • The DragDropState.RealNode treeview property has been renamed to RealTargetNode.
  • Bug:
  • Color editor didn`t apply color changes automatically when the mouse cursor hovers over the color box.
  • Exception thrown in the MouseUp event handler when mouse down logic is customized by user.
  • Exception thrown when a non-selected node is focused in the treeview with selection validation activated.
  • Node control`s editor doesn`t update own location properly when other node was highlighted.

New in Flexible TreeView 2.7 (Aug 4, 2010)

  • New Feature:
  • Data binding support completelly reimplemented.
  • Improvement:
  • NodeCheckBox node control now can be bound to a boolean field as well as to a eCheckState.
  • Breaking changes:
  • Now treeview doesn`t clear selection if mouse has clicked on a selected node.
  • Bug:
  • Exception thrown when user right clicked on the non-column space.
  • Exception thrown in some cases when disposing the treeview control.
  • Expandable control doesn`t store the title font style properly.
  • Treeview crashes when the Home/End key is pressed in the treeview without focused node.

New in Flexible TreeView 2.6 (May 14, 2010)

  • New Feature:
  • Visual Studio 2010 support and integration has been added.
  • Bound data access speed has been greatly improved.
  • The NodeDateTime node control has been added to display and edit date/time in the treeview.
  • The FillFreeSpace column property has been added to auto-stretch the last column to fill all available treeview free space.
  • The NodeEditorHidden treeview event has been added.
  • Improvement:
  • The node control edit, started by an edit hot key (NodeControl.EditHotKey), now begins without delay, specified in the EditStartDelay treeview property.
  • Bug:
  • The treeview doesn`t start edit if data is empty.
  • Wrong nodes order when sorting data by the NodeNumeric node control.
  • The NodeNumeric edit control shows entered digits incorrectly.

New in Flexible TreeView 2.5 (Mar 14, 2010)

  • New Feature:
  • NodeProgressBar new node control has been added to show the progress bar in the treeview.
  • CreateDragDataObject treeview method has been added to be able to customize the drag & drop data type and content to drop nodes into external applications.
  • IAttachableControl interface has been added to dynamically interact with attached through the ControlContainer custom controls.
  • Invalidate node method has been added to update only the specific node in the treeview.
  • AllParentNodes node property has been added to easily enumerate all node`s parent nodes.
  • IsChecked node property has been added to quickly check whether the node is checked.
  • Improvement:
  • HotNodeChanged treeview event`s contract has been extended to provide information about both previous and new hot nodes.
  • Bug:
  • HotNodeChanged treeview event raised twice when the mouse hover over the column header.
  • NodeCheckBox doesn`t update the bound property when check state has changed.
  • Treeview crashed when the node with attached controls is detached.
  • StackOverflowException exception raised on drag & drop from an external application.
  • Treeview doesn`t scroll by the mouse wheel with some mouse settings.
  • Treeview doesn`t hide the node editor when scrolls by scroll bars.
  • Breaking changes:
  • IsSimpleSelection treeview property has been renamed to HasSimpleSelection.

New in Flexible TreeView 2.3 (Jan 6, 2010)

  • New Feature:
  • ColumnSpan node control property added to allow node control to span the specified columns count.
  • Wrap node control property added to allow to move node control under all previous node controls.
  • Options.NodeControl.DynamicColumnSpan treeview property added to dynamically control the node control`s column span value.
  • NodeControlColumnSpan treeview event added to dynamically set the node control`s column span value.
  • Visibility and VisibilityManager node control properties added to define the node control`s visibility within a node in different states.
  • ImageAlign column property now has the eColumnImageAlign type and new alignment Center has been added to center the column image.
  • IsHot node property added to check whether the node is under the mouse cursor.
  • IsVisibleForNode node control method added to manually control the node control visibility for every node in the treeview with many nodes.
  • eObjectVisibility.GeneralNode mode added to be able to display a node control or control container for a node that`s not selected, not focused, not hot and not soft selected.
  • IHtmlTagInspector interface has been added to be able to control every html tag`s appearance shown in the treeview.
  • Improvement:
  • Performance improvements when using a visibility manager in the treeview with many nodes.
  • Bug:
  • Node doesn`t display summaries correctly.
  • Unwanted 'License violation' message in some conditions.
  • Cannot deselect the last selected node when the AllowEmptySelection treeview option is enabled.
  • The SelectionChanged treeview event isn`t raised when an already selected node has been focused in the treeview with multiselection enabled.
  • Breaking changes:
  • 'TreeView' node, node control and column properties was renamed to 'Treeview' to maintain consistency with other classes.

New in Flexible TreeView 2.1 (Jan 6, 2010)

  • Bug:
  • Hosted custom controls is not visible in the treeview.

New in Flexible TreeView 2.0 (Nov 26, 2009)

  • New Feature:
  • Summary support has been added to display an aggregation operation result.
  • NodeSeparator node control added to show the separator line in the node.
  • PaintRowBackground treeview event added to allow to override every node`s background.
  • IndexableNode node added to easily create the node with an identifier.
  • Improvement:
  • SelectionChanged treeview event now raises when the node has been detached from the parent node as well.
  • NodeControl.ExcludeFromSelection option now can be applied in the Partial highlight mode as well.
  • Bug:
  • Empty node instance in the NodeControlPopupShowing event parameter.
  • Node controls in the hidden column taken into account when calculating the node height.
  • Wrong node index in some cases when reorder nodes by drag & drop.
  • Arithmetic overflow exception on Windows 7 when treeview is scrolled by the mouse wheel.
  • The color/gradient property designer raises exception in some cases.
  • Breaking changes:
  • eNodeControlVisibility type has been moved from the ARMSoft.FlexibleTreeView.Nodes to the ARMSoft.FlexibleTreeView.NodeControls namespace.

New in Flexible TreeView 1.4 (Oct 16, 2009)

  • New Feature:
  • DragDropOptions.AllowReorder property added to allow user to simply reorder nodes by drag & drop (multiselection is supported) when AutoMove is enabled.
  • Column context menu added.
  • HTML tag support to show the strikeout text.
  • Node.Deselect method added to deselect a selected node.
  • DoDragDropNodes treeview method added to start drag & drop programmatically.
  • Popupable node control improvements:
  • NodeControl.AutoFocus property added to auto-focus the popup`s control when it has been shown.
  • Treeview.NodeControlPopupShow event has been replaced by NodeControlPopupShowing and NodeControlPopupShown events which are raised before and after popup show respectively.
  • Treeview.Select(Node[]) method added to select many nodes by one method call.
  • Treeview.LocalizeText event added to allow easily localize a text, used in the treeview.
  • Treeview.Options.Node.FocusOnControlClick property added to focus the node when an attached custom control was clicked.
  • Node.Checked property added to easily change the node`s check state.
  • Improvement:
  • When an attached custom control got focus, the unfocussed parent node, where this control is hosting, will be focused.
  • Treeview.OnDragDrop event now raises anyway even if the node auto-move feature is enabled to notify about drag & drop finish.
  • API improvements:
  • Node.Selected property has been renamed to IsSelected and setter removed. To select node use the Select node method.
  • Node.Focused property has been renamed to IsFocused and setter removed. To focus node use the Focused node method.
  • Bug:
  • Wrong text size calculation in some cases.
  • Wrong NodeCombBox dropdown items retrieving when interactive dropdown list is enabled.
  • NodeControl.MouseMove didn`t call properly on node drag & drop.
  • Wrong selection state of other selected nodes after node detach.
  • NodeControlContainer shows the attached control in a wrong place on drag & drop start.
  • Treeview doesn`t allow to drag many selected nodes if there`s no focused node.
  • Treeview keeps the 'deny' cursor after drag & drop if the nodes drop has been denied.
  • NodeComboBox throws an exception on edit start when it is bound to the unknown class`s member.

New in Flexible TreeView 1.3 (Jun 6, 2009)

  • Custom controls hosting support
  • Popups to popup any content in the node
  • Built-in color picker
  • New demo application

New in Flexible TreeView 1.2 (Mar 10, 2009)

  • HTML text tags support
  • Text auto-wrapping
  • Treeview performance improvements. Now loading 10 000+ nodes takes less than 0.5 second!
  • TextComboBox control - pay for one component to get two!
  • Drag & drop improvements
  • Node selection improvements and much-much more...

New in Flexible TreeView 1.1 (Dec 9, 2008)

  • New state-of-the-art demo "Multimedia Explorer" which is demonstrates how easy to build an image files preview application.