已修改,加入命名空间 
using System; 
using System.Windows.Forms; 
using System.Windows.Forms.Design;   //重要 namespace oztime.smart.streammedia 

   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 f = new FolderDialog(); 
if(f.DisplayDialog() != DialogResult.OK) 

   return; 

this.txtSavePath.Text = f.Path; 

解决方案 »

  1.   


    先引用System.design.dll
    然后重载System.Windows.Forms.Design.FolderNameEditor
    public class FolderBrowser:System.Windows.Forms.Design.FolderNameEditor
    {
    private FolderBrowser FolderB =new FolderBrowser();

    public System.Windows.Forms.DialogResult Show()
    {
    return FolderB.ShowDialog();

    }
    public string DirPath
    {
    get
    {
    return FolderB.DirectoryPath;
    } }
    }调用方法:
    FolderBrowser fb=new FolderBrowser();
    fb.Show();//显示对话框
    fb.DirPath;//得到路径
      

  2.   

    虽然没试过,但是xupc的程序应该会产生StackOverFlow的例外吧。
     private FolderBrowser FolderB =new FolderBrowser();
    这一行实际上是没有出口的递归
      

  3.   

    这个运行没有任何错误,我只是命名的问题你可以改一下
    public class FolderBrowser:System.Windows.Forms.Design.FolderNameEditor改成
    public class "任何名称":System.Windows.Forms.Design.FolderNameEditor