使FileDialogs从给定目录开始,但从上次使用开始

时间:2017-03-27 12:51:48

标签: c# winforms openfiledialog savefiledialog

我的表单在类范围内声明了OpenFileDialogSaveFileDialog

    private OpenFileDialog OpenDialog = new OpenFileDialog()
    {
        Title = "Open",
        AddExtension = true,
        DefaultExt = "json",
        Filter = "JSON Files (*.json)|*.json",
        CheckFileExists = true,
        CheckPathExists = true,
        DereferenceLinks = true,
        Multiselect = false,
        ShowReadOnly = false,
        ValidateNames = true,
        RestoreDirectory = false
    };

    SaveFileDialog SaveDialog = new SaveFileDialog()
    {
        Title = "Save",
        AddExtension = true,
        CheckPathExists = true,
        CreatePrompt = false,
        DefaultExt = "json",
        Filter = "JSON Files (*.json)|*.json",
        RestoreDirectory = false
    };

然后在事件处理程序中使用它们:

    private void openToolStripButton_Click(object sender, EventArgs e)
    {
        if (OpenDialog.ShowDialog(this) != DialogResult.Cancel)
        {
            //...

我想设置这些,以便用户第一次打开应用程序时,对话框打开的目录是预定义的目录。然而,此后,如果用户再次打开对话框,他们应该打开用户上次使用它们的目录。

我一直在主要表单的RestoreDirectory事件中使用InitialDirectoryLoad属性,但未能实现此目的。这可以使用Dialogs的标准属性或方法吗?

1 个答案:

答案 0 :(得分:2)

您很可能需要保留此信息,例如在Windows注册表中。这将是用户设置的示例,即,为登录到机器的每个用户单独存储的用户设置。第一次打开对话框时,设置将不存在,因此将默认为您的初始目录;然后,存储所选值并将其用于后续对话框。