Knowledge Base

ShellBrowser .NET Components

Please enter your query or select one of the above categories.

All entries (Page 2 / 3)

Are the components native .Net code?

The components are written in pure C# directly accessing the Windows Shell-API. The library is not a wrapper around the ActiveX component.

Is the source code also available for download?

You can purchase the full source code as well. It contains approximately 1,5 Mb well documented .cs code.

Is ShellBrowser .Net Edition stable for production use?

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.

Is the Source Code in C# ?

Yes, the source code of ShellBrowser .Net Edition is entirely written in C#.
We use Visual Studio 2012 for development but it is also suitable for Visual Studio 2005, 2007, 2010 and other .Net Development Environments.

Does your product require any DLL dependency?

We have no dependencies to third party DLLs. We are only using functions that are part of windows ( e.g. shell32.dll )

Do you provide a 64 bit version of ShellBrowser .Net Edition?

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.

I have installed ShellBrowser .Net Edition, but the components do not appear in the Toolbox of Visual Studio, what have I done wrong?

There's nothing wrong with that. Sometimes e.g. when installing ShellBrowser and VS 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.

I have installed the ShellBrowser .Net Edition components to a network drive, I get an error if I try to create a project whenever I add one of these components to a Form. Why doesn't that work?

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 for details.

How do I make a context menu work with the ShellListView or ShellTreeView?

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.

Is there a way to set the root path that the ShellTreeView displays?

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";

The FullRowSelect does not work for the ShellTreeView, what's wrong?

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.

How can I access the files that where selected by the user via the Checkboxes functionality?

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.