【问题标题】:VistaFolderBrowserDialog does not start with the correct folderVistaFolderBrowserDialog 没有从正确的文件夹开始
【发布时间】:2014-02-27 14:10:02
【问题描述】:

我想为 WPF 使用文件夹浏览对话框,但似乎没有 WPF 这样一个必不可少的类。

有些人建议使用System.Windows.Forms.FolderBrowserDialog,但这是一个非常糟糕的对话框。

我试过Ookii.Dialogs.Wpf.VistaFolderBrowserDialog

Ookii.Dialogs.Wpf.VistaFolderBrowserDialog dlg = new VistaFolderBrowserDialog();
dlg.SelectedPath = path;
dlg.ShowDialog();

但设置SelectedPath 不会在对话框打开时设置开始文件夹,这对我的程序至关重要。

如何让VistaFolderBrowserDialog 在正确的文件夹中打开?

【问题讨论】:

  • 自 90 年代以来,我认为微软在 System.Windows.Forms.FolderBrowserDialog 中没有任何改变......这真是太棒了。

标签: c# wpf folderbrowserdialog


【解决方案1】:

WpfFolderBrowser.WpfFolderBrowserDialog - 这是最适合我的!

我做了一个修复: 当按下“选择文件夹”或“取消”(在 .NET 4.5.1 中运行)时,函数 ErrorHelper.HResultFromWin32(int) 会生成 System.OverflowException。

为了修复,我将有问题的代码放在未选中的块中:

unchecked
{
  win32ErrorCode =
      (int)((win32ErrorCode & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000);
}

McNeight/WpfFolderBrowser

【讨论】:

    【解决方案2】:

    我最终使用了 Codeplex 项目WPF Native Folder Browser

    WPFFolderBrowser.WPFFolderBrowserDialog dlg = new WPFFolderBrowserDialog();
    dlg.InitialDirectory = path;
    bool? pathWasSelected = dlg.ShowDialog();
    string selectedPath = null;
    if(pathWasSelected == true) 
        selectedPath = dlg.FileName;
    

    【讨论】:

    • 谢谢!那非常有帮助。 Ookii 对话框在参考问题上给我带来了很多麻烦。 WPF 的 dll 插入就像一个魅力,
    【解决方案3】:

    我无法重现此内容。但也许这里只是有些混乱。如果我这样做:

            var dialog = new VistaFolderBrowserDialog();
            dialog.SelectedPath = @"C:\Data";
            dialog.ShowDialog();
    

    选择文件夹“data”后,它将在“C:”中启动。按 OK 时,结果为“C:\Data”。但是,包括末尾的反斜杠:

            var dialog = new VistaFolderBrowserDialog();
            dialog.SelectedPath = @"C:\Data\";
            dialog.ShowDialog();
    

    将在这个确切的文件夹中启动对话框,默认情况下不选择任何内容。当按下“OK”时,结果又是“C:\Data”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 2013-01-11
      • 1970-01-01
      相关资源
      最近更新 更多