Virtual Tree Changelog

What's new in Virtual Tree 4.8.10

Jul 7, 2018
  • Fixed Infralution.Controls.CultureManager to automatically handle font scaling for all resources of type Size and Padding when changing culture. Previously only selected resources were scaled which could result in layout issues when changing culture if the display scaling was not set to 100%.
  • Fixed potential issue where pinned and scrollable columns become out of sync.
  • Changed Virtual Tree Source code to use Visual Studio 2017.
  • Removed Visual Studio 2005 Samples

New in Virtual Tree 4.8.9 (Nov 9, 2017)

  • Fixed issue with EditOnKeyPress activating a cell edit in some circumstances even though a command key shortcut (eg Control-S) was activated.
  • Fixed issues with scaling of header context menus when using high DPI displays with scaling.
  • Fixed appearance of row and column drag cursors when using high DPI displays with scaling.
  • Fixed preview of icons when using high DPI displays with scaling.
  • Fixed print and print preview issues when using high DPI displays with scaling.
  • Added translations for Spanish, Czech, Polish, Portugese, Dutch and Korean

New in Virtual Tree 4.8.9 (Nov 9, 2017)

  • Fixed issue with EditOnKeyPress activating a cell edit in some circumstances even though a command key shortcut (eg Control-S) was activated.
  • Fixed issues with scaling of header context menus when using high DPI displays with scaling.
  • Fixed appearance of row and column drag cursors when using high DPI displays with scaling.
  • Fixed preview of icons when using high DPI displays with scaling.
  • Fixed print and print preview issues when using high DPI displays with scaling.
  • Added translations for Spanish, Czech, Polish, Portugese, Dutch and Korean

New in Virtual Tree 4.1.2 (Oct 18, 2011)

  • Fixed memory leak where Style objects created by RowWidget.GetSelectedStyle and CellWidget.GetSelectedStyle would not be garbage collected because of an outstanding reference to them from StyleDelta event handler.

New in Virtual Tree 4.1.1 (Oct 18, 2011)

  • Fixed bug in the order in which the cell editor control.validation events and SetCellValue event are called in some circumstances. Previously if focus was shifted to a control outside of the tree then the SetCellValue event would occur before the control Validating and Validated fired.

New in Virtual Tree 4.1.0 (Oct 18, 2011)

  • Added SortableBindingList implementation to Infralution.Common
  • Changed CellWidget so that ToolTips are not displayed for cells where ShowText is false unless AlwaysDisplayToolTip is true.
  • Fixed possible null reference exception in ProcessEditXXXCmdKey methods.
  • Fixed bug in VirtualListBox that could result in an exception if it receives focus before the data source is set.

New in Virtual Tree 4.0.0 (Oct 18, 2011)

  • Changed Virtual Tree to internally use Images instead of Icons for all bitmapped visual elements (eg row icons, expansion icons). Added Image properties (ExpandImage, CollapseImage, SortAscendingImage, SortDescendingImage, FocusImage, ErrorImage, PinImage) to allow these to be set directly. Using images instead of icons allows the use of Project Resources (as well as Local Resources) and also enables the use of alpha blended images. The Icon properties have been retained for backward compatibility but now just convert to/from the internal image format.
  • Added support for Microsoft Active Accessibility (MSAA) to Virtual Tree and other controls
  • Added FormatValueText property to CellData and CellBinding classes. This property allows you to control whether the cell text is generated by formatting the cell value (using the Format property) or by converting the cell value to string using its type converter. Note that previously you could force the use of the type converter by setting the Format property to an empty string. This is no longer the case and you should use this property instead.
  • Added FormatToolTipText and FormatErrorText properties to CellData and CellBinding classes. These properties allow you to control whether the CellData.ToolTip and CellData.Error strings are used as format strings and can contain placeholders for the cell value.
  • Added FormatUsingTypeConverter property to CellData and CellBinding classes. This property allows you to specify that the cell value should be first converted to a string using the associated type converter before it is formatted. This can be useful where the type converter provides functionality that is not available through String.Format.
  • Added Padding property to Style class. This allows you to specify the padding that should be used around cell content.
  • Added ClipboardWatcher component - that makes it easy for forms and controls to receive notifications of changes to the clipboard.
  • Changed CellWidget layout so that if CellBinding.PreviewSize Width or Height is set to zero (0) then the preview is automatically sized to the cell width or height. Note that you can now also use Padding to control the offset of the preview inside the cell.
  • Fixed issues with UniversalEditBox display of graphical preview being stretched and not always updated.
  • Fixed issue with EditOnKeyPress functionality where an edit would be initiated and abandoned/completed if the Escape or Enter keys were pressed with a row selected.
  • Fixed painting when control is disabled (Enabled = false) so that text, images and tree lines are grayed out appropriately.
  • Fixed issue with edited cell values not being saved in some circumstances where the CellEditor.UpdateValueEvent is set to Validated and focus is changed while the cell editor is visible doesn't have focus.
  • Fixed bug (unhandled exception) in VirtualList and VirtualDropDownList when using a currency manager and all items are removed from the datasource.

New in Virtual Tree 3.15.2 (Oct 18, 2011)

  • Fixed memory leak where Style objects created by RowWidget.GetSelectedStyle and CellWidget.GetSelectedStyle would not be garbage collected because of an outstanding reference to them from StyleDelta event handler.

New in Virtual Tree 3.15.1 (Oct 18, 2011)

  • Changed RowWidget.DoDragDrop to explicitly allow DragDropEffects.Link (as this is not included in DragDropEffects.All).
  • Fixed issue with cell editing being initiated during a drag operation even though SelectBeforeEdit is true.

New in Virtual Tree 3.15.0 (Oct 18, 2011)

  • Changed Virtual Tree Help/Documentation to be standalone (CHM) rather than integrated with the Microsoft Visual Studio 2005/2008 help system. This enables the Virtual Tree documentation to be viewed when using Visual Studio 2010 (which uses a different help system to VS2008) and also means Visual Studio is no longer required to view the help documentation.
  • Added Visual Studio 2010 Sample Projects
  • Added TextFormatFlags.NoPrefix option when using GDI TextRenderer to draw text (ie when CompatibleTextRendering is set to false). This ensures that ampersands are treated the same as when CompatibleTextRendering is set to true.
  • Added RichTextBoxEx control to Infralution.Controls. Added themed border support for RichTextBoxes
  • Added borderWidth parameter to Infralution.Controls.DrawingUtilities.DrawThemeBorder.
  • Added PanelEx control to Infralution.Controls to handle RightToLeft layout
  • Added BaseDialog form to Infralution.Controls.
  • Changed VirtualTree.ProcessEscapeCmdKey and VirtualTree.ProcessEnterCmdKey to return false - so that they don't interfere with normal form accept and cancel button operations

New in Virtual Tree 3.14.0 (Oct 18, 2011)

  • Added VirtualTree.MaintainStateOnSort property. This allows you to control whether Virtual Tree attempts to maintain the current selection and expansion state of the tree when the user clicks on column header to sort the tree. Maintaining selection and expansion state can be potentially expensive - especially for large data sources. Setting this property to false can significantly improve sort performance - however the selection and expansion state will not be maintained. The default value is set to true for backward compatibility.
  • Changed VirtualTree.OnSortColumnChanged method to display wait cursor while the tree is updated following a sort.
  • Added SynchronizeThreadCulture property to Infralution.Controls.CultureManager class. If set to true the Thread.CurrentCulture is automatically change to a matching culture when the CultureManager.ApplicationUICulture is changed.
  • Added SetThreadUICulture property to Infralution.Controls.CultureManager class. This allows the CurrentUICulture (and optionally CurrentCulture) of the current thread to be set to the current CultureManager.ApplicationUICulture value. This can be useful when dealing with multithreaded applications.
  • Fixed issue with the new horizontal scrolling position being incorrect when changing selection (with context sensitive columns), if the horizontal scroll was already scrolled to the right.

New in Virtual Tree 3.13.0 (Oct 18, 2011)

  • Added GetToolTipCellData event. This allows you to set the tooltip for a cell on demand (when the user hovers over the cell) rather than when the cell is first displayed. This can be useful when setting the tooltip is computationally expensive.
  • Added DropScrollTimerInterval and DropExpandTimerInterval properties to VirtualTree. These provide a more convenient way of controlling the behaviour of the tree while performing drag and drop (previously to change these values you needed to create a custom RowWidget).
  • Added EnsureItemVisible method. This is a convenience method that you can call instead of calling FindRow followed by Row.EnsureVisible.
  • Added FocusItem property. This is a convenience method that you can call instead of calling FindRow followed by FocusRow.
  • Added Hidable property to Column class. This allows you to control whether a column should appear in the Show/Hide Columns independently of whether it is Movable. Note that the default for this new property is true - so if you have existing columns with Movable set to false then you will need to set the Hidable property to false if you want to maintain the previous behaviour.
  • Added Tag property to Column class. This allows the application to associate custom data with the column.
  • Added ShowPinIcon property to Column class. This allows the pin icon to be optionally hidden for pinned columns.
  • Fixed RowWidget.UpdateData so that it does not call CellWidget.UpdateData if the column for the cell has been removed from the trees Column collection.
  • Added EmptyRowSpace value to RowDropLocation enumeration and changed PanelWidget drag and drop methods to call VirtualTree RowDropEffect and OnRowDrop methods. This makes it easier to handle dropping data onto an empty tree. Previously you had to create a custom PanelWidget to handle this. Now you can just handle the GetRowDropEffect and RowDrop events (or override the RowDropEffect and OnRowDrop methods) as you would for handling dropping data onto Rows.
  • Fixed background of drag and drop cursor for column headers when using UseThemedHeaders is true.

New in Virtual Tree 3.12.2 (Oct 18, 2011)

  • Fixed positioning of editor control when editing main column so that it doesn't use the full column width. This fixes a bug introduced in version 3.12.
  • Fixed positioning of focus rectangle when using RightToLeft layout.

New in Virtual Tree 3.12.1 (Oct 18, 2011)

  • Fixed issue with editors in SpanningRowWidget flickering when tree is resized.
  • Fixed bug introduced in Version 3.12.0 where the expansion indicator is not removed from LoadOnExpand rows when there are no child rows.

New in Virtual Tree 3.12.0 (Oct 18, 2011)

  • Added CompatibleTextRendering property to Style. If set to false (default) then GDI (via the TextRenderer API) is used. If set to true then GDI+ (Graphics.DrawString) is used for rendering text. The default value is set to true for backward compatibility.
  • Setting CompatibleTextRendering to false fixes an issue where left aligned strings starting with the same text appear with different spacing depending on the text length.
  • Fixed a GDI+ exception in Graphics.DrawString when the text displayed is very large (greater than 32K). When using CompatibleTextRendering text is now truncated if it exceeds this size.
  • Restructured RowWidgets and CellWidgets so that the CellWidget for the main column paints the row icon and row connections. This simplifies the layout logic and enables the background of the main column to be changed like that of any other column. Previously only the background of the editable area of the cell would change if the background color of the main column was changed.
  • Changed PrefixWidget so that it is only displayed when the CellData.Editor or CellData.Value is non null. This allows you to remove the Prefix Editor control for specific rows simply by handling the GetCellData event and setting the CellData.Editor to null.
  • Fixed issue with calling Expand on RootRow causing root row to be made visible when ShowRootRow is false.
  • Fixed issue with behaviour of right/left keyboard keys when VirtualTree.RightToLeft is set to Yes. Behaviour of these keys is now swapped when RightToLeft is Yes.
  • Fixed issue where a user could, in certain circumstances using keyboard navigation, collapse the last displayed node in the tree resulting in an empty tree with no scrollbars

New in Virtual Tree 3.11.2 (Oct 18, 2011)

  • Fixed issue with RTF rendering of large embedded images.
  • Fixed issue with using centre or far vertical alignment with RTF

New in Virtual Tree 3.11.1 (Oct 18, 2011)

  • Fixed layout of UniversalEditBox when RightToLeft is set for types that don't have a drop down editor.
  • Fixed issue with EditOnKeyPress when Caps Lock is on that causes the first character typed to be the wrong case.
  • Fixed Virtual Tree Editor dropdown lists of properties and types so that they work correctly for C++ projects at design time. Previously if you used Virtual Tree in a C++ project you could not use the dropdowns at design time to select properties or types.
  • Fixed DefaultValue attribute for AllowDrop property (now set to true). This means that if you change this property to false the designer will now properly serialize the new value.
  • Fixed issue with DrawToBitmap not rendering headers in the correct location if UseThemedHeaders is set to true.
  • Fixed RTF rendering to handle embedded images (previously embedded images were not displayed).
  • Fixed potential memory leak in RTF rendering.
  • Changed CellEditor to set the template cell editor control Visible property to false. This prevents the template cell editor controls being drawn if using Control.DrawToBitmap

New in Virtual Tree 3.7 (Nov 23, 2007)

  • Now compatible with Visual Studio 2008