打开文件对话框多选

7
我正在使用多选文件对话框来浏览多张图片,并将它们添加到 DataGridView,然后将它们存储在数据库中。但是,问题在于我只能够存储第一张选定的图片(没有语法或运行时错误)。经过检查,我发现文件对话框仅获取第一张图片的完整路径,并将其用于其余的图片。
以下是示例代码:
if (ofd_pic.ShowDialog() == DialogResult.OK)
{
   foreach (String file in ofd_pic.FileNames)
   {
    MessageBox.Show(ofd_pic.FileName);
   }
}

那个消息框总是只显示第一张图片的路径,我无法获取每个选定图像的路径。

文件对话框的属性如下:

1.修饰符:私有。 2. MultiSelect:真。3. RestoreDirectory:真。

需要帮忙吗?


你怎么说它只显示一个路径?当您选择两个文件时,它会显示带有消息框的文件名。当您关闭该消息框时会发生什么?其他消息框会弹出吗? - dotnetstep
2个回答

12

实际上,您正在循环遍历所有文件,但您从未使用它。您需要使用循环变量file

foreach (String file in ofd_pic.FileNames)
{
    MessageBox.Show(file);
}

ofd_pic.FileName属性应该只在将MultiSelect设置为false时使用,这样才有意义。我猜当你启用了MultiSelect时,FileName会返回第一个文件。


1
您使用了错误的参数。
if (ofd_pic.ShowDialog() == DialogResult.OK)
{
foreach (String file in ofd_pic.FileNames)
 {
 MessageBox.Show(file);
 }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接