使 FileDialogs 从给定目录开始,然后从上次使用的目录开始
Make FileDialogs start from given directory but then from last used
我有一个在 class 范围内声明了 OpenFileDialog
和 SaveFileDialog
的表单:
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)
{
//...
我想设置这些,以便用户第一次打开应用程序时,打开对话框的目录是预先确定的目录。然而,此后,如果用户再次打开对话框,他们应该打开到用户上次使用它们的目录。
我一直在与主窗体的 Load
事件中的 RestoreDirectory
和 InitialDirectory
属性讨价还价,但未能实现。是否可以使用对话框的标准属性或方法?
您很可能需要保留此信息,例如在 Windows 注册表中。这将是用户设置的示例,即为每个登录机器的用户单独存储的设置。第一次打开对话框时,设置将不存在,因此将默认为您的初始目录;然后,您存储所选值并将其用于后续对话框。
我有一个在 class 范围内声明了 OpenFileDialog
和 SaveFileDialog
的表单:
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)
{
//...
我想设置这些,以便用户第一次打开应用程序时,打开对话框的目录是预先确定的目录。然而,此后,如果用户再次打开对话框,他们应该打开到用户上次使用它们的目录。
我一直在与主窗体的 Load
事件中的 RestoreDirectory
和 InitialDirectory
属性讨价还价,但未能实现。是否可以使用对话框的标准属性或方法?
您很可能需要保留此信息,例如在 Windows 注册表中。这将是用户设置的示例,即为每个登录机器的用户单独存储的设置。第一次打开对话框时,设置将不存在,因此将默认为您的初始目录;然后,您存储所选值并将其用于后续对话框。