我的程序中有一个导出数据的函数。导出效果很好,但我遇到了一些问题:当用户点击导出时,他们会看到一个文件夹浏览器,以选择他们想要导出到的硬盘驱动器的位置。浏览器最初启动 ,所有硬盘驱动器/文件夹都按照应有的方式折叠,但我无法弄清楚如何制作它以便程序记住用户选择的位置,以便下次他们想要导出时,它会自动打开到该位置,而不是再次打开所有崩溃的内容。我想,我只是遇到了逻辑问题。有人有任何提示吗?
另外,为了澄清,我试图让它仅在会话期间记住该位置,而不是永久地记录在寄存器上。
到目前为止,这是我的导出功能,如果您认为这会有所帮助:
private void Export(int formatVersion, bool pureXmlDriver)
{
if (Device != null)
{
Utilities.StripShortNameFromLongNames(Device);
using (var folderBrowser = new FolderBrowserDialog())
{
folderBrowser.Description = Resources.SelectExportFolder;
if (folderBrowser.ShowDialog() == DialogResult.OK)
{
string selectedFolder = folderBrowser.SelectedPath;
try
{
Cursor = Cursors.WaitCursor;
HandleExport(formatVersion, pureXmlDriver, selectedFolder);
}
finally
{
Cursor = Cursors.Default;
}
}
}
}
}
答案 0 :(得分:1)
这应该这样做。您只需要一个类字段来保留最后一个值。
public class MyClass
{
private string selectedPath = "";
public void Export(int formatVersion, bool pureXmlDriver)
{
if (Device != null)
{
Utilities.StripShortNameFromLongNames(Device);
using (var folderBrowser = new FolderBrowserDialog())
{
folderBrowser.Description = Resources.SelectExportFolder;
folderBrowser.SelectedPath = selectedPath;
if (folderBrowser.ShowDialog() == DialogResult.OK)
{
selectedFolder = folderBrowser.SelectedPath;
try
{
Cursor = Cursors.WaitCursor;
HandleExport(formatVersion, pureXmlDriver, selectedFolder);
}
finally
{
Cursor = Cursors.Default;
}
}
}
}
}
}