【问题标题】:Is it possible to make a FolderBrowserDialog's default path show up in a library instead of the actual disk?是否可以让 FolderBrowserDialog 的默认路径显示在库中而不是实际磁盘中?
【发布时间】:2011-12-06 17:50:50
【问题描述】:

我知道如果我在显示对话框之前设置SelectedPath,我可以让它在对话框打开时默认打开一个文件夹。但是,我要使用的文件夹按字母顺序排在列表的后面。我在 Windows 中拥有与我的一个库相同的文件夹,它显示在列表中,有没有办法让它默认为文件夹的库版本而不是文件夹的硬盘驱动器版本?

另一个可能的解决方案是,如果它仍然使用驱动器版本,但它会自动将窗口向下滚动到它被选中的位置。有没有办法做这两种解决方案?


目前的显示方式

我希望它如何显示

【问题讨论】:

标签: c# .net winforms


【解决方案1】:

设置你的根文件夹和选择的路径,它会在对话框打开时自动滚动到那里:

FolderBrowserDialog dlg = new FolderBrowserDialog();
dlg.RootFolder = Environment.SpecialFolder.MyComputer;
dlg.SelectedPath = @"E:\Vetcentric";
dlg.ShowDialog();

您遇到的问题是,如果您在选择位于库层次结构中的文件夹后查看属性分配,它仍会将其分配给您通过我的计算机获得的通用路径。

【讨论】:

  • 有趣,使用设计器设置RootFolderSelectedPath 它选择了文件夹并展开了树,但它没有自动滚动到窗口。将这两行代码从设计器中移出并移到我的构造器中,使它完成了我想要的行为。谢谢!
  • 对其他阅读本文的人来说,如果您选择路径,请按 OK,然后再次打开对话框,它将选择文件夹,但不会再次自动滚动。
  • @Scott Chamberlain:正如您所说,此解决方案仅在您第一次打开对话框时有效。有人有更好的解决方案吗?
  • @itsho 我的猜测是,一旦您选择了第一个文件夹(显然),选定的路径就会改变。您可能只是在与控件相关的某些事件(例如导致对话框首先显示的按钮或输入字段)上将其默认为相同的 SelectedPath,以便每次行为都是相同的。
【解决方案2】:

使用 Reset() 调用。这将使其自动滚动。

        string prevpath = folderBrowserDialog1.SelectedPath;
        folderBrowserDialog1.Reset();
        folderBrowserDialog1.SelectedPath = bc.myWorkingDir;
        folderBrowserDialog1.ShowNewFolderButton = true;

        DialogResult dr = folderBrowserDialog1.ShowDialog();
        if (dr == DialogResult.OK || dr == DialogResult.Yes)
        {
            bc.myWorkingDir = folderBrowserDialog1.SelectedPath;
        }
        folderBrowserDialog1.SelectedPath = prevpath;

【讨论】:

  • 对我不起作用。 Reset() 调用会清除 Designer 中的设置。
【解决方案3】:

只需设置路径 Libraries\VetCentric... 我认为在你打开之前应该这样做。

【讨论】:

    【解决方案4】:

    最简单的方法可能是将您想要的文件夹的快捷方式放入起始文件夹。然后,只需双击快捷方式,它就会将您带到您的文件夹。

    否则您将需要使用Shell Library API 见:Using Libraries in your Program

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2011-09-10
      • 1970-01-01
      • 2015-05-27
      相关资源
      最近更新 更多