Csharp/C#教程:从C#中的打开文件对话框中排除文件扩展名分享


从C#中的打开文件对话框中排除文件扩展名

我试图在我的C#openFileDialog上放置一个filter来排除某些文件扩展名。 例如,我希望它显示目录中不是.txt文件的所有文件。

有没有办法做到这一点?

使用BCL OpenFileDialog没有直接的方法。

我可以想到几个选择:

1)制作一个只包含您想要支持的所有类型的filter。 这是我的建议,因为这是进行此类操作的最常见方式。

2)使用这个自定义OpenFileDialog实现的内容 。 然后,如果所选文件的扩展名为.txt,则可以覆盖OnFileNameChanged()方法以可能禁用“打开”按钮。

3)让用户选择.txt文件,抛出错误对话框,然后重新打开文件对话框。 这对我来说很笨拙而且不太好,不过……

我不认为这是可能的。 设置filter的方式是,您可以选择要显示的文件,但我认为没有办法显示“除…以外的所有文件”。 想想看,你见过Windows中的Open File Dialog吗? 我不认为我见过一个。

您最好的选择是让他们选择所有文件,然后提示用户是否选择了不允许的文件或将其过滤到您可以处理的所有可能文件。

找到谷歌搜索“OpenFileDialog”

编辑:很抱歉没有扩展EXCLUDE方面。 你可能不需要走到这个极端,但它会满足你的需求….

我担心这是不可能的。 你要么必须要

另外,你能为这个问题提供更多的背景吗? 我无法设想我可能明确需要排除某个扩展的场景。 在几乎所有情况下,您都不可能只使用filter(可能需要检查一些代码)。

这是一种完全不同的方法,您不太可能使用它。

而不是使用OpenFileDialog,分析您需要的特定function并创建自己的对话框。 您可以轻松地提供您想要的任何过滤,但随后难度转移到实现和维护新UI。

我不建议您这样做,但有时用户会坚持他们需要的东西。

另一个替代方案:不是使用对话框,而是提出完全不同的东西,非常适合应用程序。 这可能是不可能的,但后来我们对该应用程序了解不多。

您无法设置filter以从文件对话框中排除扩展名。

但是,您可以在对话框上为FileOk事件实现委托。 此事件在接受用户选择的文件之前触发,事件参数提供Cancel属性,您可以将其设置为禁止选择。

它并不像实际使错误的文件不可见那样优雅,但它允许您禁止选择错误类型的文件。

PS:不要忘记向用户反馈文件未被接受的原因,否则他们可能想知道为什么对话框在选择’txt’文件时没有关闭。

上述就是C#学习教程:从C#中的打开文件对话框中排除文件扩展名分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

www.ctvol.com true Article Csharp/C#教程:从C#中的打开文件对话框中排除文件扩展名分享

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1009269.html

(0)
上一篇 2021年12月29日 下午11:00
下一篇 2021年12月29日 下午11:01

精彩推荐