【问题标题】:How can I save and load the last selected folder by user with FolderBrowserDialog?如何使用 FolderBrowserDialog 保存和加载用户最后选择的文件夹?
【发布时间】:2017-02-09 16:44:59
【问题描述】:
private void btnStart_Click(object sender, EventArgs e)
{
    System.Windows.Forms.FolderBrowserDialog openFolderDialog = new System.Windows.Forms.FolderBrowserDialog();

    if (openFolderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        Properties.Settings.Default.LastSelectedFolder = openFolderDialog.SelectedPath.ToString();
        Properties.Settings.Default.Save();
}

LastSelectedFolder 不存在。 我尝试将项目属性转到“设置”选项卡,并在那里添加了 LastSelectedFolder 的值。

所以现在我有了:名称设置类型字符串范围用户值 LastSelectedFolder

但它仍然无法正常工作,仍然出现错误,并且在单击 btnStart 时保存在何处以及如何将其加载回来之后?

即使将 LastSelectedFolder 添加到设置中,默认值之后也不存在:

【问题讨论】:

  • 您保存了上次选择的文件夹,但下次显示FolderBrowserDialog 时您没有使用它。
  • 1) 在您的新版问题中,我们可以在屏幕截图中看到,属性名为Setting,包含值LastSelectedFolder。所以你的代码目前应该有构建错误,因为你使用了Properties.Settings.Default.LastSelectedFolder2) 此外,您不需要手动将设置分配给文件夹浏览器的属性,使用属性绑定到应用程序设置,如下所示:Save Settings in VB.Net or C#

标签: c# .net winforms folderbrowserdialog


【解决方案1】:

如果您创建一个新对话框,您必须将最后一个路径设置为默认值。因此,您也可以使用 FolderBrowserDialog.SelectedPath 属性。这是带有附加行的代码:

private void btnStart_Click(object sender, EventArgs e)
{
    System.Windows.Forms.FolderBrowserDialog openFolderDialog = new System.Windows.Forms.FolderBrowserDialog();
    openFolderDialog.SelectedPath = Properties.Settings.Default.LastSelectedFolder;

    if (openFolderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
            Properties.Settings.Default.LastSelectedFolder = openFolderDialog.SelectedPath.ToString();
            Properties.Settings.Default.Save();
    }
}

在您的屏幕截图中,您将设置命名为 Setting。将此更改为LastSelectedFolder 并清除默认值(最后一列)。

之后就可以编译运行了!

【讨论】:

  • 但 LastSelectedFolder 在 Default: Properties.Settings.Default.LastSelectedFolder 之后不存在,即使在项目属性中将 LastSelectedFolder 添加到 Settings 后也是如此。
  • 这听起来像是设置的问题。可以显示设置吗?
  • 我在答案中添加了解决方案。
【解决方案2】:

试试这个:

private void btnStart_Click(object sender, EventArgs e)
    {
        System.Windows.Forms.FolderBrowserDialog openFolderDialog = new System.Windows.Forms.FolderBrowserDialog();
        openFolderDialog.SelectedPath = Properties.Settings.Default.LastSelectedFolder;

        if (openFolderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            Properties.Settings.Default.LastSelectedFolder = openFolderDialog.SelectedPath.ToString();
            Properties.Settings.Default.Save();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    相关资源
    最近更新 更多