openFileDialog默认路径问题

shengjie122 2016-07-27 09:45:06
各位大神,本人最近一直在OpenFileDialog的默认路径上产生很大疑问。我设置默认路径是 桌面,但再次打开时却变成了打开文件的路径。以下在代码,请各位高手帮忙解答
private void btnExcel2_Click(object sender, EventArgs e)
{
string strPath = System.IO.Directory.GetCurrentDirectory();
OpenFileDialog fd1 = new OpenFileDialog();
fd1.Filter = "Excel_2013(*.xlsx)|*.xlsx|Excel_之前版本(*.xls)|*.xls|所有文件(*.*)|*.*";
fd1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
fd1.ShowReadOnly = true;

if (fd1.ShowDialog() == DialogResult.OK)
{
Excel.Application eApp2 = new Excel.Application();
Excel.Workbook book = eApp2.Application.Workbooks.Add(fd1.FileNames);
eApp2.Visible = true;

SecondTextPath.Text = fd1.FileName.ToString();
SecondTextPath.ReadOnly = true;
}
else
{
return;
}

if (fd1.FileName != Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory))
{
MessageBox.Show(fd1.FileName.ToString());
fd1.Reset();
}
}
...全文
433 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
花开花折 2016-07-29
  • 打赏
  • 举报
回复
引用 3 楼 shengjie122 的回复:
[quote=引用 1 楼 u010909114 的回复:] 去除 fd1.ShowReadOnly = true; 再试试。
确实是成功了,但去除后整体的图标变大,还有每次关闭窗口后默认路径都会回到桌面。有没有办法,关掉软件后才会默认路径,没关掉才会返回上一次选择的路径[/quote] 你得自己设定一个变量记录最后次打开文件的路径 string path="",赋值给 fd1.InitialDirectory=path;
  • 打赏
  • 举报
回复
引用 3 楼 shengjie122 的回复:
[quote=引用 1 楼 u010909114 的回复:] 去除 fd1.ShowReadOnly = true; 再试试。
确实是成功了,但去除后整体的图标变大,还有每次关闭窗口后默认路径都会回到桌面。有没有办法,关掉软件后才会默认路径,没关掉才会返回上一次选择的路径[/quote] 设置一个全局变量记录上次打开路径,其默认值是桌面。每次打开openFileDialog之前都用这个变量给openFileDialog.FileName赋值,这样关掉后再打开默认路径就是桌面。每次选择了新的路径后再记录下来,打开选择框的时候再用记录的路径赋值设置路径。
shengjie122 2016-07-29
  • 打赏
  • 举报
回复
引用 1 楼 u010909114 的回复:
去除 fd1.ShowReadOnly = true; 再试试。
确实是成功了,但去除后整体的图标变大,还有每次关闭窗口后默认路径都会回到桌面。有没有办法,关掉软件后才会默认路径,没关掉才会返回上一次选择的路径
D56233577 2016-07-28
  • 打赏
  • 举报
回复
RestoreDirectory 获取或设置一个值,该值指示该对话框在关闭前是否将目录还原为之前选定的目录。(从 FileDialog 继承。)
花开花折 2016-07-28
  • 打赏
  • 举报
回复
引用 楼主 shengjie122 的回复:
各位大神,本人最近一直在OpenFileDialog的默认路径上产生很大疑问。我设置默认路径是 桌面,但再次打开时却变成了打开文件的路径。以下在代码,请各位高手帮忙解答 private void btnExcel2_Click(object sender, EventArgs e) { string strPath = System.IO.Directory.GetCurrentDirectory(); OpenFileDialog fd1 = new OpenFileDialog(); fd1.Filter = "Excel_2013(*.xlsx)|*.xlsx|Excel_之前版本(*.xls)|*.xls|所有文件(*.*)|*.*"; fd1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); fd1.ShowReadOnly = true; if (fd1.ShowDialog() == DialogResult.OK) { Excel.Application eApp2 = new Excel.Application(); Excel.Workbook book = eApp2.Application.Workbooks.Add(fd1.FileNames); eApp2.Visible = true; SecondTextPath.Text = fd1.FileName.ToString(); SecondTextPath.ReadOnly = true; } else { return; } if (fd1.FileName != Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)) { MessageBox.Show(fd1.FileName.ToString()); fd1.Reset(); } }
去除 fd1.ShowReadOnly = true; 再试试。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧