这看起来应该很简单。我有一个程序,当我使用OpenFileDialog时,它会在两个单独的列中提取文件名和文件路径。我正在使用一个foreach语句,为OpenFileDialog中选择的每个文件添加一行(注意,我在我的ofd中使用了多选)。
当我选择一个文件时,一切都很好,因为数组中只有一个文件名(字符串)。当我选择2个文件时,我的DataGridView中添加了四行。我知道我不应该在foreach
函数中使用2 dataGridView1.Rows.Add
个语句。
是否有一种简单的方法可以在不使用Add
的{{1}}部分的情况下将数组添加到列中?我想在第三列(来自我的OpenFileDialog数组)的每个单元格中添加一个字符串,但是每次都不添加一行。
dataGridView1.Rows.Add
我也尝试了以下内容,并在下面的屏幕截图中收到了结果:
private void button1_Click(object sender, EventArgs e)
{
ofd.Filter = "*.SFP, *.SFL|*.sfp; *.sfl";
ofd.Multiselect = true;
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] selectedFiles = ofd.SafeFileNames;
string[] filePaths = ofd.FileNames;
foreach (string selectedFile in selectedFiles)
foreach (string filePath in filePaths)
{
dataGridView1.Rows.Add(selectedFile, "", filePath);
}
}
}
我真的认为这很简单。新程序员在这里。谢谢你的帮助。
答案 0 :(得分:0)
openFileDialog1.Multiselect = true;
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] selectedFiles = openFileDialog1.SafeFileNames;
string[] filePaths = openFileDialog1.FileNames;
for (int i = 0; i < openFileDialog1.FileNames.Count() - 1; i++)
{
dataGridView1.Rows.Add(selectedFiles[i], filePaths[i]);
}
}