datagridview - 向DataGridView添加文件名和安全文件名

  显示原文与译文双语对照的内容
0 0

这应该是简单的。 我有一个程序,可以以在两个单独的列中拉入文件名和文件路径,当我使用。 使用foreach语句为 OpenFileDialog ( 注意,我在ofd中使用了多选择) 中选定的每个文件添加一行。

当我选择一个文件时,一切都很好,因为 array 中只有 1个文件名( 字符串) 。 选择 2个文件时,将向DataGridView添加4 行。 我知道我不应该在 dataGridView1.Rows.Add 函数中使用 2 foreach 语句。

是否有一个简单的方法将 array 添加到列中,而不使用 dataGridView1.Rows.AddAdd 部分? 我希望在第三列( 从 OpenFileDialog array ) 中的每个单元格中添加一个字符串,但每次都不添加一行。

 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);
 }
 }
 }

enter image description here

我还尝试了以下步骤,并在下面的屏幕截图中得到了结果:

 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)
 {
 dataGridView1.Rows.Add(selectedFile);
 }
 foreach (string filePath in filePaths)
 {
 dataGridView1.Rows.Add("","", filePath);
 }
 }
 }

enter image description here

我觉得这很简单。 新程序员,感谢你的帮助。

时间:原作者:1个回答

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]);
 }
 }
原作者:
...