更改SaveFileDialog中保存和取消按钮的默认排列

时间:2011-03-23 11:06:46

标签: c# button savefiledialog

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

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

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

如果你们中的任何人到目前为止经历过这个问题,请给我一个解决方案....

谢谢

3 个答案:

答案 0 :(得分:4)

请不要这样做。

用户习惯于显示这些按钮的位置。如果你试图改变他们的布局,那么你只会让你觉得错误。

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

但实际上,请不要这样做,你只会让你的应用更糟。

答案 1 :(得分:3)

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

请注意每个 Windows版本中的对话框都已更改。下一个可能会打破你的程序。如果不这样做,您的客户不会感到失望。

答案 2 :(得分:1)

也许这可以解决您的问题Extending the save file dialog class