2014-10-11 73 views
-1

我想创建一个文件对话框,就像MS Word中那样工作。具体来说,您可以在文件对话窗口中选择一个现有文件,创建一个新文件或删除一个文件。 OpenFileDialog是一个只读的交易。您无法使用该控件创建新文件。 SaveFileDialog不能用于选择现有的文件。有没有一种控制能够完成上述所有内容?Winforms OpenFileDialog问题

+0

OpenFileDialog是一个密封类。您不能扩展或修改它。所以创建自己的自定义OpenFileDialog有点复杂。你可以从这里开始[自定义OpenFileDialog](http://www.codeproject.com/Articles/16276/Customizing-OpenFileDialog-in-NET) – Steve 2014-10-11 17:16:58

+0

谢谢,史蒂夫。显然,希望情况并非如此。我听说Powershell Studio可以完成我所要求的所有事情。现在就追赶。感谢您的回复。 – 2014-10-13 18:21:41

回答

0

创建自定义对话框,您应该遵循以下步骤:

  1. 创建一个新的形式,把它MyFolderDialog
  2. 在新的形式添加你需要的控制。例如,为了让用户浏览文件系统,可以添加一个treeView并使用System.IO.FileInfo和System.IO.FolderInfo类来填充它。
  3. 创建您的形式,反映了用户选择的属性,像公共字符串SelectedFolder
  4. 添加一个“确认”按钮和“取消”按钮,您的形式
  5. 在取消按钮单击事件处理程序中添加代码this.DialogResult = DialogResult.Cancel;
  6. 在确认按钮单击事件处理程序中添加代码this.DialogResult = DialogResult.Ok;
  7. 打电话给你的自定义对话框这样

    private string PickAFolder() 
    { 
        string selectedFolder = string.Empty; 
        using(var f = new MyFolderDialog()) 
        { 
         if(f.ShowDialog() == DialogResult.Ok) 
         { 
         selectedFolder = f.SelectedFolder; 
         } 
        } 
        return selectedFolder; 
    } 
    

注意,当使用ShowDialog方法显示的形式,形式也不会当它将会关闭处理,所以你仍然可以读他的属性,你确认后。所以这是一个很好的做法,当你不再需要时手动进行处理。一个很好的方法是使用using关键字。

我希望这会有所帮助。