我有一个程序,我打开多个文件并用它们做事。我有按钮选择默认位置并将其存储为设置。
OpenFileDialog defLoc = new OpenFileDialog()
{
CheckPathExists = true,
Title = "Select the default folder"
};
if (defLoc.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Properties.Settings.Default.DefaultFolder =
System.IO.Path.GetDirectoryName(defLoc.FileName);
Console.WriteLine("Default folder set: " + Properties.Settings.Default.DefaultFolder);
}
此后,还有2个其他选择文件按钮。他们每个人都有自己的OpenFileDialog方法。出于某种原因,他们似乎共享了最后一个位置的群组记忆。例如:
首先我将DefaultLocation设置为C:\Desktop
然后我使用OpenFile1选择C:\Desktop\GenericFolder\GenericFile1.txt
现在,当我使用OpenFile2时,我想回到设置为默认位置C:\Desktop
的位置,而是从C:\Desktop\GenericFolder
开始。
在我的代码中,我在初始化每个OpenFileDialog时执行此操作:
OpenFileDialog openFileDialog1 = new OpenFileDialog
{
InitialDirectory = Properties.Settings.Default.DefaultFolder,
RestoreDirectory = false,
};
这应该把我放在我正在设置的位置,但由于某种原因它没有。相反,正如我在上面演示的那样,它只是在最后一个打开的位置吐出来。
编辑:
根据Steve的建议,我在默认文件选择器中的Properties.Settings.Default.Save();
之后添加了Console.WriteLine();
。
答案 0 :(得分:1)
问题是您在设置路径后没有调用Save()
。下次启动应用程序时,设置已重置。