2

我在 c# 中编码,我想更改 SaveFileDialog 中“保存”和“取消”按钮的默认排列。默认安排是“保存”按钮位于“取消”按钮上方。

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

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

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

谢谢你

4

2 回答 2

4

请不要这样做。

用户习惯了这些按钮出现的位置。如果您尝试更改它们的布局,那么您只会让您的应用程序感觉不对。

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

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

于 2011-03-23T11:27:10.073 回答
3

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

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

于 2011-03-23T12:32:54.103 回答