ShellBrowser .NET Components v6.0
ShellBrowser .NET Components v6.0
The ShellBrowser .NET Components is a set of UI controls that look and behave exactly like the Windows Explorer. In short: You can use them to integrate explorer components in your applications or even build your own explorer. The Visual Studio components imitate the corresponding parts of the Windows Explorer, including correct icons with overlays, the Explorer context menu, thumbnails, details, virtual folders and shell extensions. All components offer full .NET drag and drop support.
The ExplorerBrowser is a wrapped system component including a configurable Windows File Explorer window.
File Preview functionality is available using the ShellFilePreview. It enables users of your app to see the content of files without opening them. The ThumbnailImage component displays thumbnails of the selected file instead.
The ShellControlConnector control enables you to synchronize multiple shell controls without a line of code.
The non-visible ShellBrowser control gives you easy access to frequently used shell functionality, the ShellChangeNotifier informs you about relevant shell operations.
Interesting sample projects and a detailed help file are included.
All components are written in C# but can be used in all Visual Studio languages (like C#, VB.NET, and C++).
The ShellBrowser .NET Components are royalty free and involves no runtime fees. Download our Visual Studio components today!
Enhance Your .NET Application with Drop-in Shell Functionality
Includes a comprehensive set of visual and non-visual controls for Visual Studio.
Create Explorer clones within minutes with the ShellTreeView, the ShellListView, and the ShellControlConnector or the ExplorerBrowser control.
Easy drop-in: Simply drop the UI components right on your own forms or dialogs.
All captions, e.g. the column headers in the ShellListView, are from the system in the active language.
Icons and thumbnails are determined in background threads. This optimizes the reactivity and does not slow down the speed of the user interface.
Integrate the preview pane introduced with the Windows Explorer with the ShellFilePreview component and let the ShellChangeNotifier inform you about relevant shell events.
Use Windows functionality without struggling with p/invoking the respective Windows APIs and COM Objects and Interfaces.
Look-and-Feel of the Windows Explorer
The ExplorerBrowser provides a complete, configurable Windows Explorer view.
Windows Shell context menu.
Drag-and-drop with the Windows Explorer and similar applications.
Different view styles: The ShellListView supports small icons, large icons, list, details and thumbnails.
Overlay icons are supported.
Installed Shell extensions supported by the Windows Explorer are also supported by the ShellBrowser .NET Edition
Background context menu in the ShellListView is supported.
How-to Guides
Comprehensive Documentation of the controls.
Sample Projects for basic and advanced features of ShellBrowser .NET Edition included.
100% C# Code - transparent costs
The components are based on the .NET Framework Controls and are written in 100% C# code; no additional DLLs or ActiveX controls are necessary.
The ShellBrowser .NET Edition is royalty free and involves no runtime fees.
Supports Visual Studio 2010 and higher.
ShellBrowser Components .NET - all included components
ShellTreeView
ShellTreeView
Display the shell namespace of Microsoft Windows in a tree looking and behaving like the Windows Explorer's left pane with ShellTreeView.
ShellListView
ShellList
Display the contents of a folder in a list looking and behaving like the right pane of the Windows Explorer and customize it according to your needs using the ShellListView component.
ExplorerBrowser
ExplorerBrowser
The ExplorerBrowser component provides an entire Windows Explorer. Easily integrate a wide range of features in your app.
ShellSearchEdit
TShellSearch
ShellSearchEdit contains the search edit field of Windows Explorer. It can be connected to the ShellList or ExplorerBrowser to define the scope and present the result of the search.
ShellComboBox
ShellCombo
Use the ShellComboBox to create a fully configurable Windows Explorer combo box for shell objects.
ShellBrowser
TShellBrowser
ShellBrowser is a non-visual component. It enables you to browse the Windows shell namespace, query information concerning shell objects, and perform context menu operations.
ShellFilePreview
ShellFilePreview
With the ShellFilePreview control users can see view the content of files without opening them first. The .NET control connects to the IPreviewHandlers.
ThumbnailImage
ThumbnailImage
Use the ThumbnailImage control to display thumbnail images of files or folders using the same API calls the Windows Explorer employs.
ShellControlConnector
ShellControlConnector
Synchronize the visual shell controls ShellTreeView, ShellListView, DriveList, ThumbnailImage with the ShellControlConnector component.
ControlPanelTaskDialog
ControlPanelTaskDialog
Use the ControlPanelTaskDialog to run single tasks from Windows Control Panel like "User Accounts" or the "Device Center" very easily. Thus, you can add shortcuts to often needed administrative tools to your application.
FileList
FileList
The FileList control can be used to collect any file or folder in one list or to facilitate search operations.
DriveList
DriveList
With the DriveList component you can easily compile a list of a system's local and network drives. The list will also show the capacity and free disk space of each drive.
PathEdit
PathEdit
with the PathEdit component you can enable the users of your application to enter or to browse for a file or folder path in a dialog.
ShellChangeNotifier
ShellChangeNotifier
The ShellChangeNotifier component informs about changes like copy, move, or delete in the shell and file system.
ShellHistoryToolStrip
ShellHistoryToolStrip
With the ShellHistoryToolStrip you can integrate a browse history as well as the back and forward navigation buttons known from the Windows Explorer.
ShellBreadCrumbBar
shellbreadcrumb
With the comfortable ShellBreadCrumbBar you can easily integrate the breadcrumb navigation known from Windows File Explorer. It presents the folder and subfolder structures and enables users to easily switch between different folders. Additional panes include a search box and a history control.
V6.0 (Major release, 28 June, 2018)
•Windows XP is not supported anymore. This allows us to rely on some APIs that were not yet available on XP.
•The "ShellBrowser.dll" has been split into a "ShellBrowser.dll" and "ShellBrowser.Core.dll". This change was necessary due to the WPF Edition of ShellBrowser. This is a breaking change. When upgrading projects you need to add a reference to "ShellBrowser.Core.dll" manually:
In the project references select "Add Reference". In the "Reference Manager" select "Browse" and select "ShellBrowser.Core.dll" from the installation directory.
The ShellBrowser.Core.dll contains all base-classes that are used by ShellBrowser components. It is also possible to use this new assembly standalone, e.g. in Console projects (see the new "CoreSample" project included).
•ShellBrowser.NET is now targeting .NET Framework 4.0.
•Visual Studio 2010 and higher required.
•"ShellBrowser Components .NET Edition" has been shortened to "ShellBrowser.NET Components".
•Also due to the WPF Edition, some major refactoring took place. We tried to be very careful and not to induce major compatibility issues. Please don't hesitate to contact us if you experience issues when updating to V6.0 despite our efforts.
•The ShellSystemList is now deprecated. We have removed all usages from sample projects.
Please use the "ExplorerBrowser" control as replacement. We have also added a new sample project for ExplorerBrowser.
ShellSearchEdit
•The new component ShellSearchEdit contains the search edit field of Windows Explorer. It supports a "ShellControlConnector" and can be connected to the ShellList or ExplorerBrowser to define the scope and present the result of the search. For ExplorerBrowser it can be activated in the "VisiblePanes" property.
ControlPanelTaskDialog:
•The new "ControlPanelTaskDialog" can be used to show specific control subelements. Examples on how to use it can be found in the "JamExplorer" example project.
•There is also a new SpecialFolder "ShellFolder.AllTasks" that can be assigned to a ShellList and displays the available tasks.
ShellChangeNotifier:
•The usage of "AutomaticRefresh" in the controls that support it has been optimized to avoid re-registering the watched paths on initialization.
•Bugfix: A NullReferenceException that might have occurred in "ShellNotifyRegister" is now prevented.
ShellComboBox:
•When using the new property "AutomaticRefresh" the control is automatically refreshed if a drive is added or removed.
•The problem that the control was updated several times initially has been fixed.
•The order of entries now matches the Windows version the ShellComboBox is running on.
•Visual enhancements: the item height is increased. The quality of icons in the drop-down-list is better.
•An "InvalidOperationException" occurring on Windows PE has been fixed.
DriveList:
•Paths that have been added to the DriveList via the "Add" method now remain in the list when a refresh takes place, e.g. by pressing F5.
•Items in the DriveList are resolved asynchronously to avoid delays for non-existing paths or non-reachable net-drives.
•Change notifications from the Shell are handled more accurately. If a CD is inserted into the cdrom drive, it appears automatically in the list.
•The DriveList now has a visual representation at design-time.
ShellListView:
•The columns of a ShellList in details-mode and tooltips are now filled asynchronously to avoid delays for non-reachable elements.
•The "BeforeInvokeCommandonselected" event is obsolete. Please use "BeforeShellCommand" instead.
•The "BeforeShellCommand" should now be reliably called no matter what started a context menu operation (e.g. a key or selection from the context menu). Instead of a "string", the "e.Command" parameter is now internally represented by the "ShellCommand" class. However implicit conversions prevent breaking changes. The "Caption" property of "ShellCommand" holds the localized caption of the context menu item that was chosen.
•Like in Windows Explorer, when an item is renamed, only the filename (without extension) will be highlighted.
•Folders that can cause delays when being accessed (i.e. the network folder or the root of net-drives) are now filled asynchronously.
•Some issues concerning display and sorting of the "QuickAccess" special folder have been fixed.
•Bugfix: A custom background context menu is now displayed no matter if the "ShellContextMenu" property is true or false.
•Bugfix: A NullReferenceException when navigating to the windows history folder doesn't occur anymore.
•Bugfix: An application hang that might have occurred when using certain ActiveX controls (like e.g. Office Viewer) and ShellBrowser controls in the same project has been fixed.
FileList
•The FileList now supports deleting files from multiple drives.
ExplorerBrowser:
•The "MouseDown" and "MouseUp" events are now available and working.
•The Drag-and-Drop events "DragEnter", "DragOver" and "Drop" are now available and can be used to modify the automatic shell drag-and-drop.
•Like in Windows Explorer, the different icon sizes and viewstates can now be adjusted using Ctrl and the mouse-wheel.
•The sort columns and sort direction can now be controlled by code using "ExplorerBrowser.Columns.SortBy" and "ExplorerBrowser.Columns.SortDirection".
•The grouping feature is now accessible by code. Use "ExplorerBrowser.GroupBy" and "ExplorerBrowser.GroupDirection" to group items.
•Using the new methods "ExplorerBrowser.Columns.AutoSize()" and "ExplorerBrowser.Columns.DefaultSize()" the columns of an ExplorerBrowser instance can be adjusted automatically.
•The property "ExplorerBrowser.ContentFilter.ShowHidden" now works as expected independently of the current Windows Explorer settings.
•A "NavigationPending" event has been added, that allows canceling the current navigation process.
•ExplorerBrowser now has a visual representation at design-time.
ShellTreeView:
•Some issues concerning display and sorting of the "QuickAccess" special folder have been fixed.
•The "BeforeInvokeCommandonselected" event is obsolete; please use "BeforeShellCommand" instead.
•The "BeforeShellCommand" should now be reliably called no matter what started a context menu operation (e.g. a key or selection from the context menu). Instead of a "string", the "e.Command" parameter is now internally represented by the "ShellCommand" class. However implicit conversions prevent breaking changes. The "Caption" property of "ShellCommand" holds the localized caption of the context menu item that was chosen.
The list of affected paths that is passed in the eventargs has been fixed.
•Folders that can cause delays when being accessed (i.e. the network folder or the root of net-drives) are now filled asynchronously.
•The handling of shell notifications has been improved.
•Bugfix: The flickering of the ShellTree that occurred with Windows 10/1709 has been fixed.
•Bugfix: There is no exception anymore when right clicking on the empty space between two root nodes.
•Bugfix: A custom filter that might be implemented using the "AddTreeNode" event is reapplied when the ShellTree is refreshed (e.g. by pressing F5).
•Bugfix: The ShellTree is now refreshed correctly if a CD in the CD-drive is added or removed.
PathEdit:
•The event "BeforeShowDialog" can be used to cancel or replace the default dialog that is displayed when the PathEdit's button is clicked.
•We also fixed layout issues concerning high-dpi and font resizing.
ShellFilePreview:
•Breaking change: The "IShellPreviewHandler.Load" method has a changed the signature:
bool Load(ShellFilePreview p_Parent, string p_Path, ItemIdList p_AbsolutePidl)
has been changed to
bool Load(ICommonPreviewHandlerHost p_Parent, string p_Path, ItemIdList p_AbsolutePidl)
You might have implemented the interface if you use custom preview handlers. See the JamExplorer example project for an example of usage.
•The state messages of the component can be customized using the three new properties "NoPreviewAvailableMessage", "PreviewNotPossibleMessage", and "SelectFileMessage".
•Bugfixes: Word previews are now positioned correctly - before they might have been "displaced". A possible NullReferenceException that might have occurred on showing a preview is now prevented.
ThumbnailImage:
•The performance especially when resizing the control has been improved.
•On Windows PE the component will show at least icons (thumbnails are not available there).
•Windows XP is not supported anymore. This allows us to rely on some APIs that were not yet available on XP.
•The "ShellBrowser.dll" has been split into a "ShellBrowser.dll" and "ShellBrowser.Core.dll". This change was necessary due to the WPF Edition of ShellBrowser. This is a breaking change. When upgrading projects you need to add a reference to "ShellBrowser.Core.dll" manually:
In the project references select "Add Reference". In the "Reference Manager" select "Browse" and select "ShellBrowser.Core.dll" from the installation directory.
The ShellBrowser.Core.dll contains all base-classes that are used by ShellBrowser components. It is also possible to use this new assembly standalone, e.g. in Console projects (see the new "CoreSample" project included).
•ShellBrowser.NET is now targeting .NET Framework 4.0.
•Visual Studio 2010 and higher required.
•"ShellBrowser Components .NET Edition" has been shortened to "ShellBrowser.NET Components".
•Also due to the WPF Edition, some major refactoring took place. We tried to be very careful and not to induce major compatibility issues. Please don't hesitate to contact us if you experience issues when updating to V6.0 despite our efforts.
•The ShellSystemList is now deprecated. We have removed all usages from sample projects.
Please use the "ExplorerBrowser" control as replacement. We have also added a new sample project for ExplorerBrowser.
ShellSearchEdit
•The new component ShellSearchEdit contains the search edit field of Windows Explorer. It supports a "ShellControlConnector" and can be connected to the ShellList or ExplorerBrowser to define the scope and present the result of the search. For ExplorerBrowser it can be activated in the "VisiblePanes" property.
ControlPanelTaskDialog:
•The new "ControlPanelTaskDialog" can be used to show specific control subelements. Examples on how to use it can be found in the "JamExplorer" example project.
•There is also a new SpecialFolder "ShellFolder.AllTasks" that can be assigned to a ShellList and displays the available tasks.
ShellChangeNotifier:
•The usage of "AutomaticRefresh" in the controls that support it has been optimized to avoid re-registering the watched paths on initialization.
•Bugfix: A NullReferenceException that might have occurred in "ShellNotifyRegister" is now prevented.
ShellComboBox:
•When using the new property "AutomaticRefresh" the control is automatically refreshed if a drive is added or removed.
•The problem that the control was updated several times initially has been fixed.
•The order of entries now matches the Windows version the ShellComboBox is running on.
•Visual enhancements: the item height is increased. The quality of icons in the drop-down-list is better.
•An "InvalidOperationException" occurring on Windows PE has been fixed.
DriveList:
•Paths that have been added to the DriveList via the "Add" method now remain in the list when a refresh takes place, e.g. by pressing F5.
•Items in the DriveList are resolved asynchronously to avoid delays for non-existing paths or non-reachable net-drives.
•Change notifications from the Shell are handled more accurately. If a CD is inserted into the cdrom drive, it appears automatically in the list.
•The DriveList now has a visual representation at design-time.
ShellListView:
•The columns of a ShellList in details-mode and tooltips are now filled asynchronously to avoid delays for non-reachable elements.
•The "BeforeInvokeCommandonselected" event is obsolete. Please use "BeforeShellCommand" instead.
•The "BeforeShellCommand" should now be reliably called no matter what started a context menu operation (e.g. a key or selection from the context menu). Instead of a "string", the "e.Command" parameter is now internally represented by the "ShellCommand" class. However implicit conversions prevent breaking changes. The "Caption" property of "ShellCommand" holds the localized caption of the context menu item that was chosen.
•Like in Windows Explorer, when an item is renamed, only the filename (without extension) will be highlighted.
•Folders that can cause delays when being accessed (i.e. the network folder or the root of net-drives) are now filled asynchronously.
•Some issues concerning display and sorting of the "QuickAccess" special folder have been fixed.
•Bugfix: A custom background context menu is now displayed no matter if the "ShellContextMenu" property is true or false.
•Bugfix: A NullReferenceException when navigating to the windows history folder doesn't occur anymore.
•Bugfix: An application hang that might have occurred when using certain ActiveX controls (like e.g. Office Viewer) and ShellBrowser controls in the same project has been fixed.
FileList
•The FileList now supports deleting files from multiple drives.
ExplorerBrowser:
•The "MouseDown" and "MouseUp" events are now available and working.
•The Drag-and-Drop events "DragEnter", "DragOver" and "Drop" are now available and can be used to modify the automatic shell drag-and-drop.
•Like in Windows Explorer, the different icon sizes and viewstates can now be adjusted using Ctrl and the mouse-wheel.
•The sort columns and sort direction can now be controlled by code using "ExplorerBrowser.Columns.SortBy" and "ExplorerBrowser.Columns.SortDirection".
•The grouping feature is now accessible by code. Use "ExplorerBrowser.GroupBy" and "ExplorerBrowser.GroupDirection" to group items.
•Using the new methods "ExplorerBrowser.Columns.AutoSize()" and "ExplorerBrowser.Columns.DefaultSize()" the columns of an ExplorerBrowser instance can be adjusted automatically.
•The property "ExplorerBrowser.ContentFilter.ShowHidden" now works as expected independently of the current Windows Explorer settings.
•A "NavigationPending" event has been added, that allows canceling the current navigation process.
•ExplorerBrowser now has a visual representation at design-time.
ShellTreeView:
•Some issues concerning display and sorting of the "QuickAccess" special folder have been fixed.
•The "BeforeInvokeCommandonselected" event is obsolete; please use "BeforeShellCommand" instead.
•The "BeforeShellCommand" should now be reliably called no matter what started a context menu operation (e.g. a key or selection from the context menu). Instead of a "string", the "e.Command" parameter is now internally represented by the "ShellCommand" class. However implicit conversions prevent breaking changes. The "Caption" property of "ShellCommand" holds the localized caption of the context menu item that was chosen.
The list of affected paths that is passed in the eventargs has been fixed.
•Folders that can cause delays when being accessed (i.e. the network folder or the root of net-drives) are now filled asynchronously.
•The handling of shell notifications has been improved.
•Bugfix: The flickering of the ShellTree that occurred with Windows 10/1709 has been fixed.
•Bugfix: There is no exception anymore when right clicking on the empty space between two root nodes.
•Bugfix: A custom filter that might be implemented using the "AddTreeNode" event is reapplied when the ShellTree is refreshed (e.g. by pressing F5).
•Bugfix: The ShellTree is now refreshed correctly if a CD in the CD-drive is added or removed.
PathEdit:
•The event "BeforeShowDialog" can be used to cancel or replace the default dialog that is displayed when the PathEdit's button is clicked.
•We also fixed layout issues concerning high-dpi and font resizing.
ShellFilePreview:
•Breaking change: The "IShellPreviewHandler.Load" method has a changed the signature:
bool Load(ShellFilePreview p_Parent, string p_Path, ItemIdList p_AbsolutePidl)
has been changed to
bool Load(ICommonPreviewHandlerHost p_Parent, string p_Path, ItemIdList p_AbsolutePidl)
You might have implemented the interface if you use custom preview handlers. See the JamExplorer example project for an example of usage.
•The state messages of the component can be customized using the three new properties "NoPreviewAvailableMessage", "PreviewNotPossibleMessage", and "SelectFileMessage".
•Bugfixes: Word previews are now positioned correctly - before they might have been "displaced". A possible NullReferenceException that might have occurred on showing a preview is now prevented.
ThumbnailImage:
•The performance especially when resizing the control has been improved.
•On Windows PE the component will show at least icons (thumbnails are not available there).
Only for V.I.P
Warning! You are not allowed to view this text.