In 2007, the components have been ported from our well tested Delphi code base. This mature library is in use since 1998. A lot of bug fixes and issues have been solved and are the reason for the efficient and high-quality production implementation for the .NET-Framework.
Knowledgebase
Yes, the source code of ShellBrowser.NET is entirely written in C#.
We have no dependencies to third party DLLs. We are only using functions that are part of windows ( e.g. shell32.dll )
We do not provide special 64 bit versions of our software, but since this software is written in pure .net language it runs natively on 64 bit systems. Provided that your application using the components is deployed as "Any CPU", it will run as a real 64 bit task.
Sometimes e.g. when installing ShellBrowser and Visual Studio is still running, the installer may not succeed in adding the components to the Toolbox of Visual Studio.
To add the components manually, hit the right mouse button on the toolbox, select Choose Items..
Then click "Browse" in the .Net tab, navigate to the folder that contains ShellBrowser.dll and choose it. You will see the new components marked, and with version information.
Click OK to add the components to the Toolbox.
If your project targets .NET Core 3.1 or .NET 5.0, please reference the NuGet package. Please see "Usage in Visual Studio" for details.
The .NET Framework has security features enabled by default which permit to open libraries or programs from a network share.
If you like to use programs or libraries from a network share you need to set the permissions accordingly. For a developer system it would be ok to set the "Permission Set" of My Computer/Runtime Security Policy/Machine/Code Groups/All_Code/LocalIntranet_Zone in the .NET Framework Configuration to "FullTrust".
To set up a correct security profile otherwise, please consult a system administrator if you plan to deploy your application to network drives.
Note that this only applies to .NET versions below 4.0, as the security model in .NET 4.0 has been significantly changed. See here for details.
Assign the ContextMenuStrip property. It is converted to a ContextMenu instance which is a wrapper of the Windows Shell-API and therefore can be merged with the menu provided by the operating system, including the extensions of third-party applications.
The OnOpening and OnClosing events are mapped to the Popup/Collapse events respectively. Other events provided by ContextMenuStrip are not triggered. A menuitem of course provides the OnClick event.
Furthermore, a property "BackgroundContextMenu" can be assigned for the ListViews of ShellBrowser. It's displayed if the user clicks the right mouse button without having an item selected. A real ToolStripMenu instance can be used here with all events that it supports. It is however recommended to set the RenderMode property to "System" to keep the look & feel consistent with the shell context menu.
Sample code can be found in the JamExplorer example.
You can either set a special windows folder by setting the RootedAt property:
shellTreeView1.RootedAt = Jam.Shell.ShellFolder.Desktop;
Or at your option, you can specify a system path the ShellTreeView component will display:
shellTreeView1.RootedAtFileSystemFolder = @"c:\windows";
Setting more than one root node is possible using the AddRoot method. See example in the API documentation.
Disable the ShowLines property to enable the full row selection. This needs to be done for all classes deriving from TreeView in order to get the expected result.
The ShellListView or ShellTreeView do not provide a property for this. Instead the ShellControlConnector component, that mediates the checkbox state between different controls in particular, has the property SelectionList which allows to iterate through the list of selected items.
Need further help getting started?
You did not find what you were looking for? Please contact us so we can provide an answer to your question.
Contact Form