FolderBrowserDialog使应用程序崩溃

时间:2012-01-17 15:18:02

标签: c# windows-7 folderbrowserdialog

每当我调用folderbrowserdialog.showDialog()时,我的应用程序崩溃了。 我正在使用之前为我工作的代码,所以它不能是代码。

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

它没有抛出任何错误,也没有异常,只是弹出小加载圈,然后应用程序消失了,我之前也注意到了它与不同的.NET应用程序!

btw:将重新安装.net 4工作吗?

4 个答案:

答案 0 :(得分:4)

尝试将此添加到您的应用程序中(最好在Main()方法的开头)。查看在达到冻结点时,exceptions.txt文件是否有任何例外记录。

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

答案 1 :(得分:1)

FolderBrowserDialog我遇到了同样的问题,找到了source of evilness。评论/取消注释[STAThread]并查看差异:

using System;
using System.Windows.Forms;

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

答案 2 :(得分:0)

你应该了解的另一件关于FolderBrowserDialog,SaveFileDialog,OpenFileDialog的事情是,如果你从可执行文件属性的兼容性选项卡上“禁用可视主题”,它们就不起作用。

答案 3 :(得分:0)

希望这有助于某人 - 我实际上遇到了这个问题,结果我不小心将DialogResult分配给了FolderBrowserDialog启动的按钮!因此,无论何时代码执行完毕,它都会返回'取消'的DialogResult。到CLR并终止我的程序。检查' DialogResult' Visual Studio中用于打开对话框的按钮的属性 - 确保将其设置为“无”。