我正在尝试使用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
中的代码前面答案 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);
}
在您的版本中,您直接写入网格而没有任何参考其大小,我猜测它是一两行大的其他设置,并且您尝试在其边界外写入。