ShellBrowser .NET Components
Hello and welcome to our Knowledge Base. Our experts provide answers to the most frequently asked questions of our customers. Start your information search here to find your answer quickly and easily.
Please enter your query or select one of the above categories.
All entries (Page 2 / 3)
All settings and data you entered in the trial version will be available in the full version.
The components are written in pure C# directly accessing the Windows Shell-API. The library is not a wrapper around the ActiveX component.
You can purchase the full source code as well. It contains approximately 1,5 Mb well documented .cs code.
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.
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.
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.
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.
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 http://msdn.microsoft.com/en-us/library/vstudio/dd233103%28v=vs.100%29.aspx 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";
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.