29

What is the simplest way to customise the System.Windows.Forms.FolderBrowserDialog so a path can be entered using text in a textbox below the tree? This would make it easier to select unmapped UNC paths.

Looks like this KB has some supporting information.

jordanz
  • 367
  • 4
  • 12
Sam Saffron
  • 128,308
  • 78
  • 326
  • 506

2 Answers2

45

Just this weekend I needed this. I looked and looked but could not find it. Resorted to writing it myself, based on that KB article, and some other things. Here ya go. FolderBrowserDialogEx (article in archive)

Full Source code. Free. MS-Public license.

FolderBrowserDialogEx

Code to use it:

     var dlg1 = new Ionic.Utils.FolderBrowserDialogEx();
     dlg1.Description = "Select a folder to extract to:";
     dlg1.ShowNewFolderButton = true;
     dlg1.ShowEditBox = true;
     //dlg1.NewStyle = false;
     dlg1.SelectedPath = txtExtractDirectory.Text;
     dlg1.ShowFullPathInEditBox = true;
     dlg1.RootFolder = System.Environment.SpecialFolder.MyComputer;
     
     // Show the FolderBrowserDialog.
     DialogResult result = dlg1.ShowDialog();
     if (result == DialogResult.OK)
     {
         txtExtractDirectory.Text = dlg1.SelectedPath;
     }

Capabilities: shows editbox, shows full path in edit box. Can be used to browse printers or computers, as well as files+folders, or just folders.

Edit, 2018-05-31: If the Codeplex link above does not work for you, this Git resource also exists.

Edit, 2022-02-11: There is probably new repo of original author https://github.com/DinoChiesa/DotNetZip/blob/master/Zip/Resources/FolderBrowserDialogEx.cs

Jan
  • 2,178
  • 3
  • 14
  • 26
Cheeso
  • 189,189
  • 101
  • 473
  • 713
  • 2
    +1 I ended up doing the same ... http://code.google.com/p/videobrowser/source/browse/trunk/MediaBrowserConfig/FolderBrowser.cs – Sam Saffron Feb 24 '09 at 10:19
  • 1
    These are the droids you are looking for: http://connect.microsoft.com/VisualStudio/feedback/details/518103/bffm-setselection-does-not-work-with-shbrowseforfolder-on-windows-7 This is the reason many of these threads about FolderBrowserDialog exist. For people having this problem, the Shell dialog wrapper control above suffers from the same issue. – Beeeaaar Jul 22 '13 at 17:20
  • 1
    All links above are either broken or point to useless pages. Anybody got an updated link that gets what Cheeso posted? – HerrimanCoder Sep 26 '17 at 20:43
  • 2
    Still no working link. Please paste the code in the answer. – SteeveDroz Mar 13 '18 at 13:41
  • 2
    @SteeveDroz - I added a link to a version that works for me. – baker.nole Jun 14 '18 at 18:04
  • There is a bug in the code on GitHub; due to _hwndEdit not being initialized it's impossible to see the full path in the edit box, even if that option is true. To fix it move the line `_hwndEdit = PInvoke.User32.FindWindowEx(new HandleRef(null, hwnd), IntPtr.Zero, "Edit", null);` to the top of the `BrowseForFolderMessages.BFFM_INITIALIZED`case so it's always called. – DaedalusAlpha Sep 16 '19 at 08:42
3

Try under code project folder browser - this allows customizing the dialog in many ways.

Also in social.msdn.microsoft.com there is a post that suggest creating a form of your own for that and even suggest the code for it.

Dror
  • 7,255
  • 3
  • 38
  • 44