【发布时间】:2017-03-27 12:51:48
【问题描述】:
我有一个在类范围内声明了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 属性,但未能实现这一点。这可以使用对话框的标准属性或方法吗?
【问题讨论】:
-
据我所知,如果您不指定 InitialDirectory,Windows 会自动执行此操作。
-
@yanyankelevich 如果我没有设置
InitialDirectory,那么它就不能满足“打开对话框的目录是预定目录” -
FileDialog.RestoreDirectory=true;该对话框在关闭之前将目录恢复到先前选择的目录。 InitialDirectory - 用于第一个加载目录。
-
@MuradGaribzada 是的,试过了 - 不起作用。塔
-
您可以使用
Settings.settings。看看Save Settings in VB.Net or C#。
标签: c# winforms openfiledialog savefiledialog