openfiledialog 选择多个文件 20

privatevoidbtn_SelectFile_Click(objectsender,EventArgse){inti;if(openFileDialog.ShowD... private void btn_SelectFile_Click(object sender, EventArgs e)
{
int i;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
for (i = 0; i < openFileDialog.SafeFileNames.Length; i++)
{
listBox2.Items.Add(openFileDialog.SafeFileNames[i]);
}
}
}
listbox显示文件名,文件非常多,在打开openFileDialog后,需要选择第一个文件,然后再按住shift选择最后一个文件,然后点打开,这样listbox创建的items顺序就不对了,如果是按shift选的,那listbox里第一条是所选择的最后一个文件,第二个则才是所选择的第一个文件,然后第三个开始正常。但是!是用鼠标圈选的这些文件就没事,我想问题出在safefileNames[i]这个东西,i=0时应该是鼠标所点击的具有焦点的那个文件,即最后一个文件,i=1时应该是倒数第二次点的文件,即第一个文件,如下图:请教有没有什么好的解决办法能让其正常排序?
展开
 我来答
freeeeeewind
2014-04-02 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1330万
展开全部

用vs2012试了一下,没有出现你提到的问题啊

     private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "所有文件|*.*";
            dialog.Multiselect = true;
            dialog.SupportMultiDottedExtensions = true;
            if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                listBox1.Items.Clear();

                foreach (string s in dialog.SafeFileNames)
                {
                    listBox1.Items.Add(s);
                }
            }
        }

追问
你用shift选一下,别用ctrl
追答
嗯,
我测试了,选中文件的次序用Ctrl+鼠标点击、鼠标拖拉连续选择、Shift+鼠标点击,都没有问题。在列表框中显示的次序,与在文件夹中文件排列的次序是一致的。
百度网友6fcf96b
2014-04-01 · TA获得超过127个赞
知道小有建树答主
回答量:120
采纳率:100%
帮助的人:84.4万
展开全部
你sort()一下再加到Listbox中去
更多追问追答
追问
求详解。求真相。求教导。
追答
集合有sort()方法,调用后可以进行默认排序,你这里全是文件名,也就是string类型,那么sort()以后就会按照从小到大的顺序排了
var names= openFileDialog.SafeFileNames.ToList();
names.Sort();//这里就排序了
//执行加入listbox操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式