如何显示一个“选择文件夹对话框“啊???

疯狂-的-蜗牛 2011-10-22 11:00:56
我在百度上面搜了一下
几乎全部是这个办法:
/*
using System.IO;
using System.Windows.Forms.Design;;//加载System.Design.dll的.Net API
*/
public class FolderDialog : FolderNameEditor
{
FolderNameEditor.FolderBrowser fDialog = new
System.Windows.Forms.Design.FolderNameEditor.FolderBrowser();
public FolderDialog()
{
}
public DialogResult DisplayDialog()
{
return DisplayDialog("请选择一个文件夹");
}

public DialogResult DisplayDialog(string description)
{
fDialog.Description = description;
return fDialog.ShowDialog();
}
public string Path
{
get
{
return fDialog.DirectoryPath;
}
}
~FolderDialog()
{
fDialog.Dispose();
}
}
FolderDialog aa = new FolderDialog();
aa.DisplayDialog();
if(aa.ShowDialog()==DialogResult.OK)
{
%%1 = aa.SelectedPath;
}

于是我照着这个来做
可是奇怪了
我的System.Windows.Forms.Design下面对没有FolderNameEditor这个类
我用的是VS2008
百思不得其解啊
???
...全文
230 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯狂-的-蜗牛 2011-10-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kongwei521 的回复:]
的System.Windows.Forms.Design下面对没有FolderNameEditor这个类
没有的时候下面会有个小等号点那个会有引用的方法。选择添加就可以了
[/Quote]
这个我知道
但是VS2008根本识别不了这个FolderNameEditor类,也就是没有这个类
疯狂-的-蜗牛 2011-10-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 return_false 的回复:]
因为FolderNameEditor是在System.Windows.Forms.Design命名空间下的,此命名空间位于动态链接库system.design.dll,所以我们要先在解决方案中添加新的引用(reference)System.Design。

  接着,我们新建一个FolderDialog类,此类从FolderNameEditor类继承,在此类中新建一个FolderBrowser……
[/Quote]
这个我看过
就是照这样做才发现此命名空间下面根本没有那个类
这句话是什么意思?:所以我们要先在解决方案中添加新的引用(reference)System.Design
萧炎 2011-10-22
  • 打赏
  • 举报
回复

OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Excel文件";
ofd.FileName = "";
//为了获取特定的系统文件夹,
//可以使用System.Environment类的静态方法GetFolderPath()。该方法接受一个Environment.SpecialFolder枚举,其中可以定义要返回路径的哪个系统目录
ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
ofd.Filter = "Excel文件(*.xlsx)|*xlsx";
ofd.ValidateNames = true;//文件有效性验证ValidateNames,验证用户输入是否是一个有效的windows文件名
ofd.CheckFileExists = true;//验证路径有效性
ofd.CheckPathExists = true;//验证文件有效性

string strName = this.txtPutInFile.Text;
//或者直接用微软自带的
//添加一个openFileDialog1控件
this.openFileDialog1.FileName = this.txtPutInFile.Text;
if (this.openFileDialog1.ShowDialog(this) == DialogResult.OK)
{
this.txtPutInFile.Text = this.openFileDialog1.FileName;
}

jevin8011 2011-10-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kongwei521 的回复:]
的System.Windows.Forms.Design下面对没有FolderNameEditor这个类
没有的时候下面会有个小等号点那个会有引用的方法。选择添加就可以了
[/Quote]
.
蝶恋花雨 2011-10-22
  • 打赏
  • 举报
回复
的System.Windows.Forms.Design下面对没有FolderNameEditor这个类
没有的时候下面会有个小等号点那个会有引用的方法。选择添加就可以了
  • 打赏
  • 举报
回复
因为FolderNameEditor是在System.Windows.Forms.Design命名空间下的,此命名空间位于动态链接库system.design.dll,所以我们要先在解决方案中添加新的引用(reference)System.Design。

  接着,我们新建一个FolderDialog类,此类从FolderNameEditor类继承,在此类中新建一个FolderBrowser类的实例。DisplayDialog(string description)函数用于设置实例fDialog的属性,并且显示浏览文件夹对话框。为了取得文件夹的路径,设置一个Path属性,返回选取文件夹的路径。

详情请看这里http://www.cnblogs.com/kafony/archive/2011/09/11/2173540.html
zhouxingyu896 2011-10-22
  • 打赏
  • 举报
回复
支持各位大侠的
支持
疯狂-的-蜗牛 2011-10-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 whowhen21 的回复:]
FolderBrowserDialog 呀,这个不是选择文件夹对话框嘛,在System.Windows.Forms下。winform程序直接能写出来的额~
而且工具箱 -> 对话框 分组有这个组件吧~
[/Quote]
呵呵,的确如此
现在才发现
但是上面那也是个问题啊
困惑中
whowhen21 2011-10-22
  • 打赏
  • 举报
回复
FolderBrowserDialog 呀,这个不是选择文件夹对话框嘛,在System.Windows.Forms下。winform程序直接能写出来的额~
而且工具箱 -> 对话框 分组有这个组件吧~

110,533

社区成员

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

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

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