我正在构建一个需要使用SaveFileDialog的应用程序。问题是我想限制用户使用SaveFileDialog的某些部分(例如,我不想让他们编辑文件的名称)。我听说使用Windows forms SaveAsDialog很难做到这一点。你知道如何在原生代码中做到这一点吗?你有完整的不可理解的例子吗(我需要完整的例子,因为我从来没有用过Windows API)?
PS。我真的需要使用SaveFileDialog来保持UI的一致性。
发布于 2009-08-14 09:31:20
如果文件名是固定的,并且用户只能导航到另一个位置,则只需使用FolderBrowserDialog即可。IMHO,这也是一致的。
发布于 2009-08-14 09:43:36
如果您真的想要使用通用的保存文件对话框,但又想使文件名成为只读的,那么您可能需要调用本机代码。您可以使用钩子提供许多定制。您将不得不学习一些Windows API:
Customizing Common Dialog Boxes
Open and Save As Dialog Boxes
GetSaveFileName Function (Using GetSaveFileName from managed code)
OPENFILENAME Structure (Using OPENFILENAME from managed code)
我已经很久没有做老式的Windows API了,所以下面的想法就是:一个想法。也许你可以创建一个钩子,在WM_INITDIALOG中你可以找到带有文件名的编辑控件。它似乎被命名为edt1。也许您可以修改该控件的窗口样式,使其成为只读的。
但也许这里提供的其他一些答案是比修改另存为对话框更好的选择。
发布于 2009-08-14 09:27:35
从头开始创建您自己的Savefiledialog。
只需创建一个看起来与Savefiledialog几乎相同的表单,但名称为Label,而不是TextBox。
https://stackoverflow.com/questions/1276890
复制相似问题