【问题标题】:Can I use the OpenFileDialog in a WinForms pane?我可以在 WinForms 窗格中使用 OpenFileDialog 吗?
【发布时间】:2012-06-08 15:13:40
【问题描述】:

有没有办法在我的 WinForms 窗体的窗格中获取 OpenFileDialog?

我想制作一个 2 窗格的“打开文件对话框”,在一个窗格中我收集在另一个窗格中选择的文件,该窗格可以在文件夹之间浏览。我知道,我可以自己滚动它,但如果我可以使用 OpenFileDialog 作为组件来插入会更容易...

【问题讨论】:

  • 不知道如何在 C# 中做到这一点,但你应该创建两个 UI 线程,而且你必须做一些 hack 以使它们看起来粘在窗格上......我很怀疑这是一条路要走。
  • 幸运的是,我不必在 C# 中那样做 :)

标签: c# winforms openfiledialog


【解决方案1】:

只要付出足够的努力,你几乎可以做任何事情,但我会在这个问题上选择“不”。它从来没有打算做你想做的事情,而且无论如何都不太适合你的范式。滚动你自己的或寻找某人已经创建的东西,我会说......

【讨论】:

  • 我当然愿意找到某人已经创建的东西。有什么建议吗?
  • 我自己从来没有用过任何东西。不过,稍微搜索一下会带来一些选择。你可以看看this CodeProject article——它似乎被证明至少是一个很好的基础。 (请注意,这更多是关于 Explorer 类型的界面,而不是 OFD,但至少这些概念都应该存在。)
【解决方案2】:

没有办法将 OpenFile Dialogue 控件放入到 Winforms。唯一的选择是使用自定义控件或为自己设计一个。非常简单,为文件夹创建树视图左侧窗格中的文件列表框和右侧窗格中的文件列表框。

【讨论】:

  • 否;它实际上非常复杂。您需要与外壳交互以获取名称空间、显示名称、图标和上下文菜单。您还需要良好的异步加载。
  • 为什么需要与 shell 通信有内置的类可以做到这一点。您可以轻松分配自己的图标。我认为不需要上下文菜单。
  • @SLaks 我知道可以做到。但是用户想要的是 DROP IN 控件。
  • 我不同意你关于非常简单的说法。即使没有上下文菜单(最终用户会想要上下文菜单),它仍然非常复杂。
  • 这有多复杂,完全取决于你想要让它有多复杂。简单树,默认图标,简单列表。没有上下文菜单,没有拖放,并且通过双击对文件夹导航的支持最少。很简单。添加的功能越多,它就越复杂,在大多数情况下呈指数级增长。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-25
  • 2014-01-02
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多