【问题标题】:Winforms OpenFileDialog problemsWinforms OpenFileDialog 问题
【发布时间】:2014-10-11 16:56:50
【问题描述】:

我想创建一个文件对话框表单,其工作方式与 MS Word 中的一样。具体来说,您可以在文件对话窗口中选择现有文件、创建新文件或删除文件。 OpenFileDialog 是一个只读交易。您无法使用该控件创建新文件。 SaveFileDialog 不能用于选择现有文件。是否有一个控件可以完成上述所有操作?

【问题讨论】:

  • OpenFileDialog 是一个密封类。您不能扩展或修改它。所以创建自己的自定义 OpenFileDialog 有点复杂。你可以从这里开始Customizing OpenFileDialog
  • 谢谢,史蒂夫。显然,希望情况并非如此。我听说 Powershell Studio 可以完成我所要求的所有事情。现在追求那个。感谢您的回复。

标签: winforms openfiledialog


【解决方案1】:

要创建自定义对话框,您应该按照以下步骤操作:

  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 关键字。

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多