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时应该是倒数第二次点的文件,即第一个文件,如下图:请教有没有什么好的解决办法能让其正常排序? 展开
{
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时应该是倒数第二次点的文件,即第一个文件,如下图:请教有没有什么好的解决办法能让其正常排序? 展开
2个回答
展开全部
用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+鼠标点击,都没有问题。在列表框中显示的次序,与在文件夹中文件排列的次序是一致的。
展开全部
你sort()一下再加到Listbox中去
更多追问追答
追问
求详解。求真相。求教导。
追答
集合有sort()方法,调用后可以进行默认排序,你这里全是文件名,也就是string类型,那么sort()以后就会按照从小到大的顺序排了
var names= openFileDialog.SafeFileNames.ToList();
names.Sort();//这里就排序了
//执行加入listbox操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询