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.

Knowledge Base ShellBrowser .NET Components

status_loader


To use the search function, you need JavaScript enabled.

All entries (Page 1 / 4)
I'm using the ShellBrowser WPF Components. I'm seeing problems concerning the z-order of controls, the ShellBrowser controls always appear on top, while they should be hidden by other controls.

Not all controls in the ShellBrowser WPF Edition are native WPF controls. Some - like ExplorerBrowser - host ActiveX controls, others like currently the ShellTreeView and ShellListView are Windows Form based.

Mixing those components in a WPF app is underlying some technological restrictions that turn up as "airspace problems" (see e.g. https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/technology-regions-overview).

Unfortunately, we cannot fix these issues. In future versions of the WPF Components we therefore plan to add more native WPF controls that can be used as a replacement for the Windows Forms based ones.

In case of doubt, please don't hesitate to test the controls intensively using the demo version.

Previews of a certain file type are not displayed correctly. What's wrong?

ShellBrowser uses registered preview handler shell extensions for the FilePreview component. Some of these extensions belong to Windows, others are installed with third party applications.

If the FilePreview is not working, please check the following list:

  • Does Windows Explorer preview the files correctly? If no, there is either no preview handler installed, or it is not working correctly. Try updating the respective program. 
  • If the problem occurs in a x86 application, please try compiling a 64-bit version.  
  • The FilePreview component works asynchronously. Depending on the context (versions of Windows, Rad Studio and the PreviewHandler, but also the layout of the form containing the Preview) some Preview Handler may not work or show visual glitches.
     
    Try forcing the loading of the preview into the main thread, by implementing the OnLoadPreview event of the Preview. 
  • If all of this fails, don't hesitate to contact the support. In this case, please provide details on the error: versions of Windows, the IDE and the program that provides the PreviewHandler.

Can I use ShellBrowser to add a custom context menu entry or add other functionality to Windows Explorer?

Unfortunately this is beyond the scope of ShellBrowser components. You have to write a "shortcut menu handler" or other type of shell extension to do so.

See the Microsoft documentation for an overview.

I want to handle the double click on a file in ExplorerBrowser myself. Is there an event I can use to catch the opening file and to cancel the open action?

Use the DefaultAction event. It is called when the user double-clicks an item, or opens it via pressing <Enter>.

You can cancel the default operation by setting the InvocationProcessed property of the passed event arguments to true.

What is the difference between the ShellListView and ExplorerBrowser?

When configuring ExplorerBrowser to only include the FolderView, it looks much like the ShellListView.

ExplorerBrowser wraps a Windows system component, and thus it will look exactly like Windows File Explorer.The ShellListView on the other hand derives a Windows Forms ListView control, that tries to resemble Windows File Explorer as much as possible. While it misses some aspects of this, it can on the other hand be customized more widely visually and functionally.

I have the source code version of ShellBrowser.NET and want to build the sources. What do I have to do?
  • Create a new folder to your project, e.g. "ShellBrowser"
  • Create subfolders: CommonControls, Controls, Core, Resources and Design
  • From the "Source" subfolder of the ShellBrowser.NET installation directory, add all source files (and resources) to the respective folders
  • In addition, add the Resources.Designer.cs and Resources.resx from the "Source" subfolder  
  • Remove references to ShellBrowser.dll and ShellBrowser.Core.dll from your project

We use a build server. Do we have to install ShellBrowser.NET on it to build our projects there?

You do not need to install ShellBrowser.NET on the build server.

Instead, you can add the ShellBrowser assemblies (ShellBrowser.dll and ShellBrowser.Core.dll) as files to your project and replace the assemblies in the project references by the copied dlls.

Make sure to deploy the ShellBrowser dlls to the build server with your project.

This also gives you full control when updating ShellBrowser.NET to a new version. 

Is there a WPF Edition of ShellBrowser.NET components or are the ShellBrowser.NET components compatible with WPF?

Yes, you can find the ShellBrowser WPF Components here.

When I run my project from Visual Studio pdf, msg or sometimes txt files cannot be previewed in the ShellFilePreview component.

Depending on .NET Framework and Visual Studio version the Visual Studio hosting process might interfere with certain registered PreviewHandlers.


This behavior will not occur if Visual Studio is either not running or the hosting process is not enabled.


Try running your project with Visual Studio completely closed, or disable the hosting process in Visual Studio (In "Project\Properties\Debug" uncheck the option "Enable the Visual Studio hosting process".


 

I'm trying to preview .msg files with the ShellFilePreview component. This doesn't work or I can only see the header of the files.

Make sure that your application has visual styles enabled. You can do this by calling Application.EnabledVisualStyles() or by adjusting your application manifest.


 

What's the purpose of "JamDesign.dll"?

The file is necessary to develop software with the ShellBrowser controls but not to run them. "JamDesign.dll" must not be delivered together with the software that is using the ShellBrowser controls.

How can I prevent the selected path to be changed by the user?

Assign the PathChanged event for a ShellList and the BeforeSelect event for a ShellTreeView. If only want to allow the Windows folder, the code could look like this:


private const string cAllowedPath = "C:\\Windows";
private void shellListView1_PathChanged(object sender, EventArgs e)
{
 // Note: PathCollection also can check if the new Path is a subpath, by calling PathCollection.IsSubPathOf(string, string)
 if (!Jam.Shell.PathCollection.SamePath(shellListView1.Path, cAllowedPath))
  shellListView1.Path = cAllowedPath;
}


private void shellTreeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
 if (!Jam.Shell.PathCollection.SamePath(((ShellTreeNode)e.Node)
.FullPath, cAllowedPath))
  e.Cancel = true;
}