Knowledge Base

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 1 / 3)

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.

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. 

Can I use ShellBrowserComponents .Net Edition with Visual Studio Express or the Community Edition?

Yes. The components can be used with Express and Community Editions of Visual Studio. Have a look at http://www.jam-software.de/knowledgebase/6790if you encounter a problem.

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.
 

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

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 http://msdn.microsoft.com/en-us/library/vstudio/dd233103%28v=vs.100%29.aspx for details.

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.

The forward/backward buttons in the ShellHistoryToolStrip don't work. What's wrong?

Because the history functionality is contained in ShellControlConnector, you need to attach one to the ShellHistoryToolStrip Control by setting the property of the same name.

How can I extend the background context menu of the ShellListView with additional items, is it possible hide default items?

Have a look at the JamExplorer example, here we override the BackgroundContextMenu class and add an additional ToolStripMenuItem in the SetupMenuItem method. To hide a default item, you can simply set its Visibility property, see the API of the BackgroundContextMenu class to get an overview of the defined Properties.
class MyBackgroundContextMenu : BackgroundContextMenu {
   protected override void SetupMenuItems() {
      base.SetupMenuItems();
      Items.Add(new ToolStripMenuItem("My Additional Item"));
            
      //hide a default item:
      this.Actualize.Visible = false;
   }
}
   
public partial class JamExplorerMain : Form {
   public JamExplorerMain() {
      InitializeComponent();
      shellListView1.BackgroundContextMenu =
        new MyBackgroundContextMenu();
   }
   ...
}

Clicking checkboxes in a ShellFileList is very slow.Is there any explaination for this behaviour ?

For folders containing many files and subfolders the process of collecting file information (e.g. overall size) can take a while. If you 'd like to suppress the scan you can set the CalculateSelectedFiles property in the SelectionList to False.
Sample code can be found in the JamExplorer example.