3

每当我调用 folderbrowserdialog.showDialog() 我的应用程序崩溃。我正在使用以前对我有用的代码,所以它不能是代码。

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

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

顺便说一句:重新安装 .net 4 会起作用吗?

4

4 回答 4

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);
            }                
        };
于 2012-01-17T15:24:36.293 回答
3

我也遇到了同样的问题,FolderBrowserDialog并找到了邪恶的根源。评论/取消评论[STAThread]并查看差异:

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    static class Program
    {
        //[STAThread]
        static void Main()
        {
            new FolderBrowserDialog().ShowDialog();
        }
    }
}
于 2013-07-15T13:56:57.587 回答
0

关于 FolderBrowserDialog、SaveFileDialog、OpenFileDialog 您应该知道的另一件事是,如果您在可执行文件属性的兼容性选项卡上“禁用视觉主题”,它们将不起作用。

于 2012-11-29T13:05:59.480 回答
0

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

于 2014-09-06T12:56:30.553 回答