SftTree/NET 2.0 - Tree Control For Windows Forms
Tree Control For .NET, C#, VB.NET
Our tree control for .NET with many grid-like features, item and cell selection, cell merging, cell editing, images, checkboxes, radiobuttons, buttons, dropdown buttons, progressbars and much, much more.
Published by Softel vdm, Inc. - 11/04/2019

SftTree/NET 2.0 Support

The current version is SftTree/NET 2.0.21.


Product Information

Using SftTree/NET & SftTabs/NET In The Same Application
Errors after upgrading from version 2.0.14 (or older) to the current version (C#)
Errors after upgrading from version 2.0.14 (or older) to the current version (VB.NET)
"Code generation failed for property 'Collection' failed. ..." (Visual Studio 2010)
Demo Has Expired
The demo version cannot be used to create distributable applications 

Windows & Visual Studio

SftTree/NET 2.0.20 is required for Windows 10 support. Older versions will not work on Windows 10.
SftTree/NET 2.0.18 is required for Windows 8 support. Older versions will not work on Windows 8.
SftTree/NET 2.0.9 is required for Windows 7 support. Older versions, such as SftTree/NET 2.0.8, will not work on Windows 7.

SftTree/NET 2.0.21 is required for Visual Studio 2017 & 2019 support.
SftTree/NET 2.0.20 is required for Visual Studio 2015 support.
SftTree/NET 2.0.19 is required for Visual Studio 2013 support.
SftTree/NET 2.0.18 is required for Visual Studio 2012 support.

SftTree/NET 2.0 Updates

Version 2.0.21:

  • Visual Studio 2017/2019 support.
  • Documentation is now located at https://softelvdm.com/Documentation/SftTree NET 2 0, which allows for continuous documentation updates without the need to release a new product version. Web access is required to access the product documentation.

Version 2.0.20:

  • Visual Studio 2015 support.
  • Windows 10 support.

Version 2.0.19:

  • Visual Studio 2013 support.
  • Item.Previous could skip the previous item if it is not visible.
Version 2.0.18:
  • Windows 8 support.
  • Visual Studio 2012 support.
  • .NET 4.0 runtime support
Version 2.0.17:
  • Item.Previous could skip the previous item if it is not visible.

Version 2.0.16:

  • >> After upgrading from version 2.0.14 (or older) to the current version, make sure to follow these simple upgrade steps (C#, VB.NET). <<
  • 2.0.15 Only: The EndEditing event could be suppressed. Earlier versions worked correctly.
  • 2.0.15 Only: The control could fail as the containing form was disposed with an exception, generally showing MarkInvalidInsideOut as the failing internal method. Earlier versions worked correctly.
Version 2.0.15:
  • After upgrading from version 2.0.14 (or older) to the current version, make sure to follow these simple upgrade steps (C#, VB.NET). <<
  • The EditNavigate method could cause a loop trying to advance past a merged cell with EditIgnore.
  • When installing SftTree/NET, the assemblies were registered correctly in the GAC, but required entries for Visual Studio were incorrectly added, causing Visual Studio to add project references to the assemblies in the GAC. This could cause problems distributing completed applications including SftTree/NET.
  • When using VAlignDefault (top or bottom) without icons or images, the expand/collapse buttons could be rendered incorrectly.
  • When loading/disposing forms repeatedly, memory would not be released under certain circumstances, causing excessive memory allocation resulting in OutOfMemoryExceptions.
Version 2.0.14:
  • ItemClass.InsertFirst and InsertLast did not work correctly and corrupted the hierarchy. Instead of InsertLast, the equivalent ItemClass.Add method could be used, which works correctly. InsertFirst could be replaced with InsertBefore using the first sibling.
  • Visual Studio 2010: Controls are now added to the Toolbox.
Version 2.0.13:
  • Windows 2000 only: Tooltips and scrolltips could cause an exception.
  • Function keys and keyboard accelerators were not handled by the form if the tree control had the input focus (depending on CharSearchMode).
  • Tooltips could remain visible when another form or application was activated.
  • Using Page Down or the scroll bar to advance one page could scroll too far, causing excessive empty space in the control.
  • When using the scroll bar to scroll up/down, under certain circuimstances an empty rectangular tooltip could appear in the top, left corner of the control.
  • Using item images could cause parts in the hierarchy column to be truncated if there was insufficient space.
Version 2.0.12:
  • When using row headers and row headers or cells with images (ImagePartClass) based on ImageLists, the images are rendered in the wrong location.
  • The HorizontalOffset property could remain > 0 even if the horizontal extent was less than the actually displayable area, resulting in a truncated display.
Version 2.0.11:
  • When using multiple selection, the selection anchor would not be updated correctly when using Control+Shift selection to select ranges of items/cells.
  • If the RemoveChildren method implicitly removed an item referenced as TopItem, an exception occurred.
  • When the last column was an open-ended column and it was larger (in height) than any other column header, all column headers were displayed incorrectly until another column was resized by the user. The problem also occurred when the control was resized.
  • Enhancement: When the last item is visible in the display area, scrolling further down is no longer possible.
Version 2.0.10:
  • Maintenance release upgrading internal shared components when using SftTree/NET and SftTabs/NET 6.0.5 (or newer). Only required for development purposes, doesn't affect run-time or existing completed applications. In other words, if you are using SftTabs/NET 6.0.5 or newer to develop applications, you must be using at least SftTree/NET 2.0.10
  • Deleting an item that has the input focus (selection anchor), followed by Shift+Click to select multiple items,  resulted in an exception.
  • Using FindItemTagString with CompleteMatch=False would result in exceptions if an item's TagString property had a (default) null string assigned to it.
  • Column resizing could leave columns hidden when HorizontalOffset remained > 0 and HorizontalExtent became smaller than the display area.
Version 2.0.9:
  • Enhancement: Support for Windows 7 has been added.
  • When typing a character (used to locate an item), the character could be mistaken for a keyboard accelerator of another control on the form.
  • Windows x64 only: With Windows Aero, the control would not repaint until the cursor moved outside the control.
  • When using validation (on other controls), clicking on the tree control would change the selection even if validation failed and prevented the input focus from shifting to the tree control.
Version 2.0.8:
  • Enhancement: FlybyHighlighting was inconsistent depending on SelectionOutlineStyle. This has been corrected and a new FlybyHighlightingUnderline property is now available to further control underlining.
  • Resizing a header/footer with a gradient fill could result in an exception.
  • Row headers did not reliable generate the ShowToolTip event over parts in row headers.
  • A pen was not released immediately which could cause exceptions when the control was used in multiple threads.
Version 2.0.7:
  • Mouse wheel scrolling was available even when the vertical scrollbar was disabled.
  • Grid lines and tree line colors were incorrectly propagated across multiple tree controls when using multiple tree controls with different color definitions.
Version 2.0.6:
  • The MakeOptimal did not honor the MaxScan argument.
  • Changing the number of columns was too slow when the control was already populated.
  • While cell editing, mouse wheel events would incorrectly be processed by the tree control if the control used for cell editing didn't handle the mouse wheel event.
  • When double-clicking extremely quickly on a column header/footer, the column would be reordered and become the last column (apparently dependent on mouse driver resolution).
  • Windows Vista: The splitter bar has been changed to support hot-tracking and to correct the right side which could show artifacts of the background showing through.
Version 2.0.5:
  • LowerMainCell and the equivalent UpperMainCell properties returned one of the subordinate cells instead of null/Nothing when the end (or start) is reached.
  • Vista x64 and VS 2008: Help file failed to display due to the internal SftHelpNET2 component.
Version 2.0.4:

Since the DateTimePicker control is frequently used, this is now done automatically by the control.

  • Bug: When double-clicking the column header resizing area, a column could become wider/narrower than the column's maximum/minimum widths (MaxWidth, MinWidth).
  • Bug: The KeepPosition property was ignored for the right-most column in a group of columns with the KeepPosition property set.
  • Enhancement: Vista and VS2008 only: When using the DateTimePicker control for cell editing, the EditClickOutside event must be handled and checked for a ClassName of SysMonthCal32, in which case EndEditing can be set to False.
        Private Sub SftTree1_EditClickOutside(
                    ByVal sender As Object, _
                    ByVal e As EditClickOutsideEventArgs) _
                    Handles SftTree1.EditClickOutside
            Debug.Print("**** EditClickOutside" + e.ClassName)
            If e.ClassName = "SysMonthCal32" Then
                e.EndEditing = False
            End If
        End Sub
    Since the DateTimePicker control is frequently used, this is now done automatically by the control.
  • Bug: A few topics did not show VB sample code. These were based on the EditSample1 code, which didn't have topic links.
  • Bug: With certain regional and language settings, our samples could not be opened in design mode and some samples wouldn't run (yes, not one of our brighter moments...).
Version 2.0.3:
  • Enhancement: Support for Visual Studio 2008 Express Editions
  • Enhancement: The parent form's sizing grip wasn't visible under certain circumstances. The control now renders the sizing grip itself, no longer relying on the containing form.
  • Enhancement: New methods to move/copy an item (and its dependents) within one tree control and between two tree controls.
  • Enhancement: A new DragDrop sample has been added demonstrating drag & drop within and between tree controls, copying and moving items.
  • Enhancement: New ItemReleased event, similar to ItemClick event, with detailed information about the mouse button that was released (including item, cell, part details), usually used for context menus in response to the right mouse button.
  • Enhancement: ScrollIntoView now automatically expands the parent item if necessary to make an item visible (Visible = true).
  • Bug: When using item selection in a single-column tree control, the up/down arrow keys could automatically expand branches.
  • Bug: When using item selection, the left arrow key would not advance to the item's parent item as documented.
  • Bug: Tooltips and scrolltips would remain even when the control was resized.
Version 2.0.2:
  • Enhancement: Support for Visual Studio Express Editions and support for Visual Studio 2008 is available.
  • Enhancement: In the property grid, all events were in the "Misc" category. Categories have now been added.
  • Bug: The ExploreAssembly sample didn't resize columns after expanding/collapsing items.
  • Minor documentation changes correcting errors and omissions.
Version 2.0.1:
  • Initial product release.

Scheduled Product Updates

following changes have been implemented and are currently available via hotfix (above) and will be available in the next version.

Version 2.0.22:
  • None.

In The Works

We are working on the following items, which will be available soon (within a few days to a month).
  • Research Only *): Vertical cell merging was only intended to be used to merge a few cells, rather than combining many cells into one cell. When using more than the intended few cells, performance issues will become apparent.

*) Research Only indicates that these items are being reviewed to determine an appropriate course of action. No commitment has been made to offer/implement such new features.