当我面对这个问题时,有人可以指导我吗?
我有一个应用程序,我可以在其中通过浏览按钮来启动项目,现在当用户选择多个文件时,虽然它选择并添加它们(因为multiselect = true)但它正在选择顶部的最后一个选定项目为什么呢?
因此导致流程出错。
答案 0 :(得分:1)
如果没有看到相关代码,问题可能会有所不同,但只是为了让您了解,有两种方法可以获得输出:使用FileName
或FileNames
。
如果您启用MultiSelect
但只查看FileName
属性,则只能获取一个文件的名称,
此属性只能是一个选定文件的名称。如果你想 返回一个包含a中所有选定文件名称的数组 多选对话框,使用
FileNames
。
嗯,两种方式确实是简化,因为你还有SafeFileName
和SafeFileNames
。我会把这项研究留给读者练习。
我可能会根据评论错误解释您的问题,但让我们看看。
答案 1 :(得分:1)
您没有说明为什么订单对您很重要,以及您是否真的需要它与用户选择文件的顺序相同。
但是如果你不这样做,你可以简单地按名称对所选文件进行排序:这为你提供了可预测的排序顺序。
答案 2 :(得分:1)
该对话框首先返回聚焦文件名(带有虚线边框的文件名,即您最近点击的文件名)。因此,如果您单击一个文件名,然后单击Shift +单击列表中的一个文件名,则最后一个成为焦点,然后是列表中的第一个,然后是其他顺序。
如果你这样做 - 反过来 - 点击一个,然后按住Shift并点击列表中的一个更高 - 然后它们将按照你期望的顺序列出。
如果不进行Shift +单击,而是在要选择的文件周围拖出一个矩形,则同样如此。这不会改变焦点(它将保留在列表中的第一个文件名中),因此它们按照它们在列表中显示的顺序。
如果用户开始使用键盘(Shift +向上/向下,Ctrl +空格,Ctrl +向上/向下)或使用Ctrl +单击选择不相交的范围,还有更多内容,但最重要的是,顺序是一切取决于用户,以及他们如何选择文件。
但是为什么你到底在乎文件列出的顺序呢?你应该把它当作一个无序列表(因为用户没有良好的方式来指定顺序 - 这不是对话的意图,所以它从来没有设计成它易于订购您的选择)。如果您想按字母顺序或其他类型的顺序显示文件名,那么只需对您获得的列表进行排序。