Question

Whenever I call folderbrowserdialog.showDialog() my application crashes. I'm using the code that worked before for me, so it CAN NOT be the code.

try
{
    FolderBrowserDialog fbd = new FolderBrowserDialog();
    fbd.RootFolder = Environment.SpecialFolder.Desktop;
    if (fbd.ShowDialog() == DialogResult.OK)
    {
        //  this.Minecraft.Text = fbd.SelectedPath;
    }
}
catch
{
}

It does not throw any error, no exception, there just pops up the little loading circle, then the app is gone, I noticed it with a different .NET app before too!

btw: will reinstalling .net 4 work?

Was it helpful?

Solution

Try adding this to your application (at the start of the Main() method, preferably). See if the exceptions.txt file has any exceptions logged into it when you reach your freezing point.

        AppDomain.CurrentDomain.FirstChanceException += (sender, e) =>
        {
            if ((e == null) || (e.Exception == null))
            {
                return;
            }

            using (var sw = File.AppendText(@".\exceptions.txt")) 
            {
                sw.WriteLine(e.ExceptionObject);
            }                
        };

        AppDomain.CurrentDomain.UnhandledException += (sender, e) =>
        {
            if ((e == null) || (e.ExceptionObject == null))
            {
                return;
            }

            using (var sw = File.AppendText(@".\exceptions.txt")) 
            {
                sw.WriteLine(e.ExceptionObject);
            }                
        };

OTHER TIPS

I had just the same problem with FolderBrowserDialog and found the source of evilness. Comment / uncomment [STAThread] and see the difference:

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    static class Program
    {
        //[STAThread]
        static void Main()
        {
            new FolderBrowserDialog().ShowDialog();
        }
    }
}

Another thing that you should know about FolderBrowserDialog, SaveFileDialog, OpenFileDialog is that they don't work if you "Disable visual themes" on the compatibility tab from the executable file properties.

Hope this helps somebody - i actually had this problem, and turns out I had accidentally assigned a DialogResult to the button that was launching by FolderBrowserDialog! Therefore, whenever the code was finished executing, it was returning the DialogResult of 'Cancel' to the CLR and terminating my program. Check the 'DialogResult' property in Visual Studio for the button you have assigned to open the dialog - make sure it is set to None.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top