【问题标题】:Change default arrangement of Save and Cancel buttons in SaveFileDialog更改 SaveFileDialog 中保存和取消按钮的默认排列
【发布时间】:2011-03-23 11:06:45
【问题描述】:

我正在使用 c# 进行编码,我想更改 SaveFileDialog 中“保存”和“取消”按钮的默认排列。默认排列是“保存”按钮在“取消”按钮上方。

我想要的是在“保存”按钮的右侧放置“取消”按钮。

我在网上搜索,发现这些按钮上的文本可以更改(答案在 stackoverflow 本身),但在更改它们的排列(位置)时没有发现任何内容。

到目前为止,如果你们中有人遇到过这种情况,请给我一个解决方案....

谢谢

【问题讨论】:

标签: c# button savefiledialog


【解决方案1】:

请不要这样做。

用户习惯了这些按钮出现的位置。如果你试图改变他们的布局,那么你只会让你的应用感觉不对。

如果您必须这样做,则应确保使用旧文件对话框(这将使您的对话框在 Vista/7 上看起来更加奇怪)。使用OPENFILENAME 结构中的 lpfnHook 字段来获取对话过程的挂钩。响应 CDN_INITDONE 通知并使用 MoveWindow 或 SetWindowPos 移动按钮。您必须寻找按钮窗口句柄。

但是说真的,请不要这样做,你只会让你的应用变得更糟。

【讨论】:

  • 谢谢你!有必要这样做,这解决了问题!!!
【解决方案2】:

这敲响了警钟。当您拥有更改按钮文本的代码时,您就有了按钮窗口的句柄。然后,当您 pinvoke GetWindowRect 和 MoveWindow 以将按钮移动到其他位置时,您可以使用它。访问 pinvoke.net 以获取声明。

请注意,每个 Windows 版本中的对话框都会发生变化。下一个很可能会破坏您的程序。如果您不这样做,您的客户不会感到失望。

【讨论】:

  • +1 “如果您不这样做,您的客户不会失望的”无论如何让我笑了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
相关资源
最近更新 更多