ShellBrowser .NET Components

Changelog

What is New in ShellBrowser .NET?

Version 6.2

New Features and Improvements

  • General: The components now support high DPI per monitor scenarios.
    Besides the project configuration as described 
    here, your project needs to target the .NET Framework 4.8. Check the "JamExplorer" and "ExplorerBrowser" example projects that have the necessary per Monitor v2 settings.
  • This required a full refactoring of the SystemImageList affecting the viewstyles and image lists of the ShellListView, FileList, DriveList and ShellTree.
  • It is now possible to use custom icons or thumbnails in the ShellListView, FileList and ShellTreeView. Check the new "Customization" example project for details.

ShellListView, ShellTreeView

  • Using the new "FileNameFormat" property you can control, whether the ShellListView or ShellTreeView displays file extensions or not. The default value is "Auto", which keeps the former behavior and uses the respective Windows Explorer setting.
  • The new "CheckBoxMode" property was added. The values "CheckBoxMode.Off" and "CheckBoxMode.Synchronized" work exactly like the boolean "CheckBoxes" property. The additional "CheckBoxMode.Simple" allows to use CheckBoxes without attached ShellControlConnector. The check states of the elements are not applied automatically; neither to other controls, nor to parent or children of a checked element.

ShellListView

  • The thumbnail view now supports overlay icons like the shortcut arrows.

ShellListView, FileList

  • To avoid delays that might occur when folder thumbnails are retrieved, a new property "FastFolderThumbnails" was introduced. If set to true (default), folder thumbnails previewing the contents of the folder are only displayed, if they can be retrieved from the cache. Else, a plain folder icon is preferred.

ShellAddressBar

  • The ShellAddressBar now has a property "UseSystemFont", that controls if the "IconTitleFont" will be applied automatically.
  • Property "RootedAtFileSystemFolder" has been added that allows to set a file system path as root of the ShellAddressBar. It's also possible to set the root to a special folder via the "RootedAt" property. This implies a breaking type change in the "ShellBreadCrumbBar.RootedAt" property, which was changed from "ShellFolder" to "ItemIdList".
  • The new "BeforePathChange" event has been introduced. It can be used to intercept path changes and cancel the navigation in process.
  • A background color of the ShellAddressBar is now also applied to the visible editing component when typing a path. Also, the editing field is now highlighted by a border.
  • The caption of a search folder as it appears in the ShellAddressBar has been fixed to show up the same way as in Windows Explorer.

ExplorerBrowser

  • Calling the "SmartRefresh" method or changing a filter property now only triggers a smooth lightweight update of the ShellView, instead of reloading the ExplorerBrowser component.

ExplorerBrowser, ItemIDList, SearchEdit

ShellChangeNotifier:

  • While it is still possible to use the "Directories" property to register for change notifications in different places, there is now another option using the new methods "AddItemIdList" and "RemoveItemIdList". This allows to add locations that don't have a physical path.

Bugfixes

ShellTreeView

  • The "Quick Access" node is now automatically updated correctly when an item is added or removed in Windows File Explorer.
  • The ShellTree now registers all its root nodes for shell notifications individually. This fixes some problems concerning the automatic update of nodes due to changes in the file system.
  • When confirmations of deletion are activated in Windows Explorer, a folder might have been removed from the ShellTree, even if the user deselected the deletion in the confirmation dialog. This is not happening anymore.
  • Now zip archives are recognized using attributes instead of checking the extension. Consequently, if "FileSystemOnly" is set, this avoids the error, that a normal folder named "Folder.zip" is mistakenly removed from the view too.

ShellListView, ShellTreeView

  • The "BeforeShellCommand" event was only called for rename operations if the renaming was started via the context menu or by pressing "F2". Now it is also called, when the label of an item or a node is put to edit-mode by using a mouse click.

ShellListView

  • If an element from a search result is deleted, it is removed from the search result too.
  • The "Paste" menu item of the background context menu is now correctly enabled if an Outlook attachment was copied to the clipboard.
  • Setting either "ShowRecycleBin" or "ShowNethood" to false, caused huge delays when loading large folders. This has been fixed.

FileList, ShellListView

  • The "MouseUp" event is now called.

ExplorerBrowser

  • The context menu is now also displayed for the inline edit box that appears when elements are being renamed.
  • The "View" property is now returning correct values even if the view has been changed via the command pane.
  • Setting the “VisiblePanes” property to "Auto", the AddressBar will now be included too.

ExplorerBrowser, ShellAddressBar

  • Using the new "AddressBar" property, you can now access the ShellAddressBar that is included in ExplorerBrowser. The property is runtime only, i.e. it's not possible to control properties of the ShellAddressBar at design time.

Breaking and noteworthy changes

  • Method ShellControlConnector.GetHistoryEnumerable was removed. Use property ShellControlConnector.HistoryItems instead.
  • Introduced "Jam.Shell.Core.ShellBrowserException". In the Debug ShellBrowser dlls, more errors and failed API calls are rethrown as ShellBrowserException.
  • ItemIdList is not implementing IDisposible anymore.
  • ShellListView, FileList: The "HeaderRightClick" event is now a standard EventHandler (with EventArgs parameter).

Obsolete functions that have been removed

  • JamBaseShellListView.IsDropTarget --> use property ShellDragDrop instead.
  • ShellBrowser.GetDefaultSortColumn
  • The ShellBrowser properties FileExtensionHidden, ShellShowFavorites, ShellShowAllFolders, ShellShowLibraries, ShellExpandToCurrentFolder and ShellListView.ExtensionsHidden can now be found in class ExplorerSettings.
  • FileList.InvokeContextMenuCommand --> use InvokeCommandOnSelected instead.
  • Jam.Shell.FILE_ATTRIBUTES --> use System,IO.FileAttributes instead.

7 August 2020