Remember Me
forgot your password?

Folderbrowserdialog Unmasked: Everything You Wanted to Know About the Folder Browser Component From .net Framework

Original Article :http://www.ssware.com/articles/folderbrowserdialog-unmasked-everything-you-wanted-to-know-about-the-folder-browser-component-from-dotnet-framework.htm



Introduction



The FolderBrowserDialog, available as part of the .Net framework, provides a folder browser component for your C# and VB.Net applications. The UI consists of a modal dialog which contains a tree control displaying all the files and folders on the system. The user can then browse and select a folder from the tree. The full path of the selected folder is then returned.



Basic Usage



To display a folder explorer UI to the user, a FolderBrowserDialog instance is created and the ShowDialog method is called. This shows the modal dialog containing the folder browser control (tree) and an OK and Cancel button. If the user selects a folder and clicks the OK button, the ShowDialog method returns DialogResult.OK and the SelectedPath property contains the full path of the selected folder. If the user clicks the Cancel button, the ShowDialog method returns DialogResult.Cancel.



Advanced Usage



The FolderBrowserDialog has some additional features such as limiting the view of the file system that is displayed to the user, pre-selecting a folder when the dialog is first displayed and displaying a button to allow the user to create a new folder.



The RootFolder property can be set to the full path of the folder which is to be displayed as the root of the tree control of the folder browser component. For example, if this property is set to Environment.SpecialFolder.Personal, only folders from the 'My Documents' are displayed in the tree, so the user can only select 'My Documents' or its sub-folders.



Prior to displaying the folder browser control, the SelectedPath property can be set to the full path of a folder causing that folder to be pre-selected in the folder browser tree. For example, when this property is set to "c:", the node corresponding to the c: drive is pre-selected in the tree when the dialog is first displayed.



If the ShowNewFolderButton property is set to true, then, in addition to the folder browser tree control, and the OK and Cancel buttons, the folder browser dialog also displays an additional 'New Folder' button which when clicked, creates a new folder under the currently selected folder.



Limitations



While the folder browser component is a handy way to allow the users to browse and select folders, it suffers from many limitations, some of them preventing the component from being of practical use in applications.



Modal Functionality



The most visible drawback of the folder browser component is that it displays its UI in the form of a modal dialog. When shown, it blocks the rest of the application until the user has chosen a folder. As long as the dialog is displayed, no input (keyboard or mouse click) can occur except within the dialog box. The user must click the OK or Cancel button before input to the calling program can occur.



This is a very annoying and limiting feature of the FolderBrowserDialog. Users are very likely to be irritated and annoyed when they have to interact with a modal dialog every time they have to explore and select a folder. A non-modal UI control which can be put inside of one of the applications's own forms or dialogs is a much more user-friendly way of displaying the same UI.



No Virtual (Non-file system) folders



The FolderBrowserDialog does not allow the user to select virtual (Non-file system) folders such as the Control Panel or My Computer. It only allows the user to select a file system path such as "c:" or "c:windows".



No Files



The component does not allow the user to select files. This is a major drawback since there are many circumstances where the user may need to select a file while still using the tree UI to browse to that file.



Limited Choice of RootFolder



The root folder of the folder browser control can be only set to one of the 'special folders' defined by Windows such as the 'My Documents' or 'My Computer'. This is a major limitation since this means you cannot set the root folder to a path such as the "d:" drive.



No Check Boxes



The folder explorer tree in the FolderBrowserDialog cannot show check boxes next to nodes. Ability to show multi-state check boxes can be a very handle feature for such a control.



No Filtering



The FolderBrowserDialog has no support for filtering. For example, it is not possible to display only network folders or only shared folders or only folders starting with the string "Documents" or files having a particular extension.



No Custom Controls



When using the FolderBrowserDialog, you are only limited to the actual folder explorer tree control, the OK, Cancel and New Folder buttons and the description label. It is not possible to add custom controls to the dialog box. This can be useful in many circumstances such as when you want to show a thumbnail/preview of the selected file/folder or any kind of additional information.



No Appearance Control



The appearance of the FolderBrowserDialog and its constituent controls cannot be changed. Neither can attributes of individual folders show in the folder explorer control be changed. For example, it is not possible to change the background color of the tree control or to set the font and color of individual nodes/folders in the tree.



No Custom items



The FolderBrowserDialog cannot display external/custom items in the folder explorer tree. For example, it may be necessary to display items from an FTP location in addition to the file system items. This is not possible with the FolderBrowserDialog.



No Lockdown



The FolderBrowserDialog allows unhindered operations on folders. The user can rename folders, do drag-drop operations and display the context menu and invoke various operations. In many cases, it may be necessary to limit or altogether prevent such potentially dangerous and irreversible operations, however the FolderBrowserDialog provides no way of doing that.



Beyond The FolderBrowserDialog : The FolderView Control



The FolderView Control brings a Windows Explorer like folder browser component to your applications complete with AutoUpdate, dragdrop, icons, contextmenus, Non-file system items, default key-handling, infotips and renaming. It features powerful behavior control and customization functionality that takes it miles ahead of Windows Explorer by adding features like filtering, checkboxes, custom items, multiple root nodes, dragdrop control and customization of default contextmenus, displaynames, icons and infotips.



The FolderView control is a UI control which can be dropped right inside your own forms and dialogs. A non-modal file & folder browsing/selection experience right inside your own dialogs and forms is something that users will appreciate and find intuitive and simple.



Additionally, FolderView overcomes all the limitations of the FolderBrowserDialog and provides far greater and advanced features and functionality than the FolderBrowserDialog. The following table is a quick comparison of the FolderView Control with the FolderBrowserDialog.



Drop-In Windows Explorer like folder browser functionality.
FolderView Control : Yes
FolderBrowserDialog : Modal UI. The component cannot be dropped in your own form.








  • Complete Windows Explorer functionality include a file/folder browsing listview (similar to Windows Explorer's right-side) and a drive selection control (similar to Windows Explorer's address bar)
    FolderView Control : Yes. As part of Shell MegaPack
    FolderBrowserDialog : No




  • Ability to select virtual (Non-file system) folders
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Ability to specify any and all folders as root.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Ability to show files as well as folders.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Multi-state check boxes
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Filtering capabilities
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Custom controls
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Appearance Control
    FolderView Control : Colors and appearance of the control as a whole and of individual folders/files can be changed.
    FolderBrowserDialog : No.




  • Custom Items
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Prevent renaming, drag-drop, context menus
    FolderView Control : Yes. For all folders or on a per-folder basis.
    FolderBrowserDialog : No




  • Multiple root folders
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Change default display names, icons, overlay icons, infotip, etc
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Simply and easy to use API
    FolderView Control : Yes
    Clumsy, inflexible API




  • Access complete information of a file/folder including its displayname, fullpath, checkstate, selection state and attributes like whether it is a shortcut, shared, hidden, readonly, file and folder.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Prevent display of contextmenus for all folders using a simple property or on a per-folder basis using an event.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Prevent dragdrop for all folders using a simple property or on a per-folder basis using an event.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Allow/disallow renaming for all folders using a simple property or on a per-folder basis using an event.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Allow/disallow selection for all folders using a simple property or on a per-folder basis using an event.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Allow/disallow expanding/collapsing on a per-folder basis using an event.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Change default drag actions during dragdrop (e.g. from Copy To Move)
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Control checking/unchecking on a per-folder basis.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Prevent execution of default shell commands ( e.g. Open, Cut, Properties, etc. in response to keystrokes or through the context menu) for all folders using a simple property or on a per-folder basis using an event.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Show/hide hidden folders using a simple property.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Show/hide virtual folders ( e.g. Control Panel ) using a simple property.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Enumerate all folders shown in FolderView.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Enumerate all folders according to folder hierarchy structure.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Execute shell commands ( e.g. Cut, Delete, etc ) on folders.
    FolderView Control : Yes
    FolderBrowserDialog : No




  • Associate developer defined data with each folder
    FolderView Control : Yes
    FolderBrowserDialog : No






The FolderView control (and Shell MegaPack ) is available in two editions :



.Net Edition : For use in .Net development using Windows Forms, WPF and ASP.Net



ActiveX Edition : For use in applications developed using Visual C++/MFC/ATL, Visual Basic 6, VBA (Access, Word, Excel, AutoCAD,etc), Borland Delphi and Borland Builder, and HTML/ASP pages.

G. Himangi

G Himangi is a Senior Software Developer at LogicNP Software (http://www.ssware.com) and is a member of LogicNP Software's component and controls development team.

Rate this Article: 5 / 5 stars - 1 vote(s)
Print Email Re-Publish

Add new Comment



Captcha

  • Latest Programming Articles
  • More from G. Himangi

Magento Development

By: Digisha Modi | 26/12/2009
Magento eCommerce Development is an incredibly advanced suite which enables you to have a shopping cart up and running in a very short time. Magento includes advanced reporting and analysis features which will increase your awareness of sales trends and other customer activity to enable you to tune your business for maximum efficiency. Its unique characteristics are unlimited flexibility, completely scalable architecture, professional and community support and smooth integration with 3rd party a

PSD to XHTML Conversion Services

By: Digisha Modi | 26/12/2009
To make a website easily visible and popular, making it browser compatible is very important. For this PSD to XHTML conversion is one of the most vital elements of Web designing. Its growing importance in the designing cannot be completely annulled. With the increasing competition among the web marketers, the importance of a good design with better usability has become the necessity of the present time.

Magento Extension Development

By: Digisha Modi | 26/12/2009
Magento is a feature-rich, professional open-source eCommerce solution that offers merchants complete flexibility and control over the look, content, and functionality of their online store. Magneto’s intuitive administration interface contains powerful marketing, search engine optimization and catalog-management tools to give merchants the power to create sites that are tailored to their unique business needs.

How to burn WMV video to DVD to enjoy on TV, xobx, PS 3 or other playwers

By: lyndon123 | 26/12/2009
WMV video is a one of the most pop format video we often use. Enjoy the WMV video on TV, Xbox, PS 3 or other DVD Players is often necessary in our common life. Now we can follow this simple guide to learn how to burn WMV to DVD Disc.

Mobile antivirus software is beginning to be an essential

By: brookepens | 25/12/2009
When it comes to our home computers and networks in the work place everyone ensures that they are protected by mobile antivirus software with protective firewalls. Unfortunately, there are still many people and businesses that do not realise that mobile phone antivirus software has become just as important to have as antivirus computer software.

NetOffice Customization

By: Digisha Modi | 25/12/2009
NetOffice is a web based project management tools written in PHP and utilizing MySQL. It has a surprisingly easy to use user interface, and it really is self explanatory, even for first time users. It has the same features as most other free web based project management tools but is set apart from the pack by its simple layout and amazing ease of use.

SugarCRM Development Services

By: Digisha Modi | 25/12/2009
SugarCRM is commercial open source Customer Relationship Management software that is designed to meet all the CRM requirements of organizations. It is developed using PHP and available in both free and commercial editions. It provides basic CRM functionality such as lead tracking, sales management, project management, issue tracking etc.

Magento - Best Choice for Ecommerce Solution

By: Digisha Modi | 24/12/2009
Magento eCommerce is a new Open Source platform with industry-leading features to provide merchants with unprecedented control over store operations. This Open Source eCommerce software is very powerful and includes many features that have not been seen in Open Source products before. Magento eCommerce is one of the fastest growing new software, and looks set to become a dominant force in the eCommerce industry.

8 Ways To Protect And Obfuscate Your .Net Code Against Reverse-Engineering Using Crypto Obfuscator

By: G. Himangi | 23/10/2009 | Software
Crypto Obfuscator arms .Net developers with a powerful code protection and obfuscation tool which enable them to deploy their .Net software without fear of IP theft, reverse-engineering, hacking, cracking and piracy.

Add Network Floating License Capability To Your Software With CryptoLicensing

By: G. Himangi | 18/09/2009 | Software
A network floating license is an essential requirement for some types of software and for some customer scenarios. CryptoLicensing makes it extremely easy to add network floating licenses functionality to your software via its customer deployed license service.

Add Windows Explorer Integration to Document Management Software, Content Management Software and Virtual Drives Using Namespace Extensions

By: G. Himangi | 13/01/2009 | Programming
EZNamespaceExtensions.Net is a framework for rapid development of shell namespace extensions in .Net. It eliminates the complicated process of developing namespace extensions and supports all features including sub-folders, custom views, details/column view, contextmenus, drag-drop and others which enable the extension to integrate smoothly into Windows Explorer.

Folderbrowserdialog Unmasked: Everything You Wanted to Know About the Folder Browser Component From .net Framework

By: G. Himangi | 21/11/2008 | Programming
The FolderBrowserDialog, available as part of the .Net framework, provides a folder browser component for your C# and VB.Net applications. The UI consists of a modal dialog which contains a tree control displaying all the files and folders on the system. The user can then browse and select a folder from the tree. The full path of the selected folder is then returned. In this article we will learn more about the FolderBrowserDialog, its usage, properties and limitations.

Shell Megapack : Shell Browser Components & Controls for Mfc, Vb, .net, C#, Vb.net, C++, Delphi ,vba

By: G. Himangi | 10/09/2008 | Programming
Shell MegaPack consisting of a folder tree control, a file/folder list control and a drive-selection control completely mimics the Windows Explorer UI including Thumbnail, Detail & Group View, dragdrop, icons, context menus, virtual items, infotips and renaming. Also included is the ShellObjects, set of components for creating quick launch-like appbars, displaying multiple MSN/Office2003 style popups, wizard UIs, animated tray icons, automatic form resizing, Vista-style task dialogs.

Submit Your Articles Free: Signup
Article Categories




Use of this web site constitutes acceptance of the Terms Of Use and Privacy Policy | User published content is licensed under a Creative Commons License.
Copyright © 2005-2008 Free Articles by ArticlesBase.com, All rights reserved. (1.48, 6, w3)