我在百度上面搜了一下
几乎全部是这个办法:
/*
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
百思不得其解啊
???

解决方案 »

  1.   

    因为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
      

  2.   

    的System.Windows.Forms.Design下面对没有FolderNameEditor这个类
    没有的时候下面会有个小等号点那个会有引用的方法。选择添加就可以了
      

  3.   


    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;
                }
      

  4.   

    这个我看过
    就是照这样做才发现此命名空间下面根本没有那个类
    这句话是什么意思?:所以我们要先在解决方案中添加新的引用(reference)System.Design
      

  5.   

    这个我知道
    但是VS2008根本识别不了这个FolderNameEditor类,也就是没有这个类
      

  6.   

    FolderBrowserDialog 呀,这个不是选择文件夹对话框嘛,在System.Windows.Forms下。winform程序直接能写出来的额~
    而且工具箱 -> 对话框 分组有这个组件吧~