使用For-Loop将Stuff添加到Gridview中

时间:2015-08-19 19:44:59

标签: c# for-loop datagridview

我正在尝试使用For-Loop

将一些数据导入我的Datagridview

但问题是,如果我的计数器在2处无缘无故我的循环跳出来,我不知道为什么

这是我的代码:

var row = new DataGridViewRow();
//image directory
DirectoryInfo dir = new DirectoryInfo(@"C:\Users\Daniel\Pictures");

//getting all files from the Directory
foreach(FileInfo file in dir.GetFiles())
{

    try
    {
         this.img16x16.Images.Add(Image.FromFile(file.FullName));

    }catch
    {
         Console.WriteLine("This is not an image file");
    }
}
for (int j = 0; j <= this.img16x16.Images.Count; j++)
{

    dataGridView1.Rows[j].Cells[0].Value = img16x16.Images[j].ToString();
    img16x16.ImageSize = new Size(16, 16);
    dataGridView1.Rows[j].Cells[1].Value = img16x16.Images[j];
    dataGridView1.Rows.Add(row);

感谢您的帮助

编辑:我找到了解决方案,我只需要把这两个:

var row = new DataGridViewRow();
dataGridView1.Rows.Add(row);

在for-loop

中的代码前面

1 个答案:

答案 0 :(得分:1)

看起来你已经混淆了你的行变量和数据网格的行。

for(int j = 0;  j < this.img16x16.Images.Count; j++)
{
    row = new DataGridViewRow();
    //Add first cell and its data to the variable "row"
    //Size changes
    //Add second cell and its data to the variable "row"

    //Add "row" to the grid:
    dataGridView1.Rows.Add(row);
}

在您的版本中,您直接写入网格而没有任何参考其大小,我猜测它是一两行大的其他设置,并且您尝试在其边界外写入。