【问题标题】:c#: How to change title of FolderBrowserDialog using P/Invoke?c#: 如何使用 P/Invoke 更改 FolderBrowserDialog 的标题?
【发布时间】:2010-02-17 05:01:12
【问题描述】:

FolderBrowserDialog 显示一个文本“浏览文件夹”作为标题。

This Link 表示使用 P/Invoke 我们可以做到这一点。那是什么? 如何为此使用 P/Invoke?

还有其他方法可以改变吗?

【问题讨论】:

  • 直接复制。更改问题的标题以反映更新后的问题。

标签: c# .net title folderbrowserdialog


【解决方案1】:

简而言之,答案是否定的。 P/Invoke 允许您调用本机 Windows API 函数。你可以在这里阅读一篇旧的但仍然相关的文章:http://msdn.microsoft.com/en-us/magazine/cc164123.aspx

很遗憾,您需要调用 ShBrowseForFolder 的特定函数不允许您为窗口标题指定不同的文本。

【讨论】:

    【解决方案2】:

    我认为我们不能更改文件夹浏览器对话框的标题,如果有办法,那么它使用复杂的 p/Invoke 调用。

    我知道有一个有趣的XBrowseForFolder - Wrapper for SHBrowseForFolder 可供选择。

    它是一个 vc++ 组件,您可以在您的 c# 项目中使用这个组件,而您只需很少的编码工作。

    【讨论】:

      【解决方案3】:

      如果您正在开发适用于 Windows 7 的软件(并使用 .NET 3.5 SP1),那么您可以下载并使用 Windows API Code Pack,它带来了许多额外的控件,可以替代 FolderBrowserDialog。

      以下是 Windows API 代码包中包含的内容

      Windows 7 任务栏

      • 跳转列表、图标叠加层、进度条、选项卡式缩略图和缩略图工具栏

      Windows 外壳

      • Windows 7 库
      • Windows Shell 搜索 API 支持
      • Explorer 浏览器控件
      • Shell 命名空间实体的层次结构
      • Windows Shell 属性系统
      • 外壳对象的拖放
      • Windows Vista 和 Windows 7 通用文件对话框,包括自定义控件
      • 已知文件夹和非文件系统容器

      DirectX

      • Direct3D 11.0、Direct3D 10.1/10.0、DXGI 1.0/1.1、Direct2D 1.0、DirectWrite、Windows 映像组件 (WIC) API

      其他

      • Windows Vista 和 Windows 7 任务对话框
      • 传感器平台 API
      • 扩展语言服务 API
      • 电源管理 API
      • 应用程序重启和恢复 API
      • 网络列表管理器 API
      • Command Link 控件和系统定义的 Shell 图标

      【讨论】:

        【解决方案4】:

        您不能更改对话框标题。如果需要,可以考虑使用 Shell MegaPack 中提供的商业 FolderBrowserDialog 替换组件

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-07-28
          • 2010-11-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多