自定义 OpenFileDialog

2024-03-06

我正在用 C# 开发 winforms 应用程序。我想要实现的是从用户那里获取一个文件,我正在使用以下代码:

OpenFileDialog dlg = new OpenFileDialog();
if (dlg.ShowDialog() == DialogResult.OK)
{
    string sFileName = dlg.FileName;
    //my code goes here
}

现在,一切工作正常,但我想将 3 个单选按钮放在同一个对话框中,这意味着我现在可以从此对话框中得到两件事

string sFileName = dlg.FileName; //same as in case of traditional dialog box
//some thing like this which tells which radio button is selected:
dlg.rbTypes.Selected

我该如何实现这一目标?


是的,这是可能的,我做了同样类型的定制SaveFileDialog成功了,而且很有趣。

请点击以下链接:

http://www.codeproject.com/KB/dialog/OpenFileDialogEx.aspx http://www.codeproject.com/KB/dialog/OpenFileDialogEx.aspx

http://www.codeproject.com/KB/cs/getsavefilename.aspx http://www.codeproject.com/KB/cs/getsavefilename.aspx

http://www.codeproject.com/KB/dialog/CustomizeFileDialog.aspx http://www.codeproject.com/KB/dialog/CustomizeFileDialog.aspx

我自己的问题也将对您有所帮助:

更改 SaveFileDialog 中“保存”和“取消”按钮的默认排列 https://stackoverflow.com/questions/5404278/change-default-arrangement-of-save-and-cancel-buttons-in-savefiledialog

使用 GetSaveFileName 创建 SaveFileDialog 时如何停止覆盖提示 https://stackoverflow.com/questions/5512752/how-to-stop-overwriteprompt-when-creating-savefiledialog-using-getsavefilename

你必须使用WinAPI为此,你需要写ShowDialog您自己调用的方法GetOpenFileNamewindows函数在里面,而不是调用.net的OpenFileDialog. The GetOpenFileName将创建窗口OpenFileDialog。 (请参阅http://msdn.microsoft.com/en-us/library/ms646927%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/ms646927%28v=vs.85%29.aspx)。这与编写 HookProc 过程和捕获事件(例如WM_INITDIALOG, CDN_INITDONE里面会帮助你做你想做的事。

要添加单选按钮等,您必须调用 Windows 函数,例如CreateWindowEx and SendMessage....

第二个链接有定制的确切方向......

求任何澄清...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义 OpenFileDialog 的相关文章

随机推荐