C# 向DataGridView添加行时,是否只显示一行?
当我运行上面的循环时,它会添加所有行,但只有最后一行包含任何数据。我做错了什么?你的索引没有改变。 您可以将dataGridMain.Rows.Count-1声明为索引 看起来计数没有变化,似乎您需要首先获取索引,将其存储在变量中,然后添加值:C# 向DataGridView添加行时,是否只显示一行?,c#,winforms,datagridview,C#,Winforms,Datagridview,当我运行上面的循环时,它会添加所有行,但只有最后一行包含任何数据。我做错了什么?你的索引没有改变。 您可以将dataGridMain.Rows.Count-1声明为索引 看起来计数没有变化,似乎您需要首先获取索引,将其存储在变量中,然后添加值: int n=dataGridMain.Rows.Add() //现在使用n dataGrid.Rows[n].单元格[0].值=a.date //更多代码您可以尝试使用外接程序中的索引,以防它对排序执行某些操作: foreach (var a in A)
int n=dataGridMain.Rows.Add()代码>
//现在使用n
dataGrid.Rows[n].单元格[0].值=a.date代码>
//更多代码
您可以尝试使用外接程序中的索引,以防它对排序执行某些操作:
foreach (var a in A)
{
dataGridMain.Rows.Add();
dataGridMain.Rows[dataGridMain.Rows.Count - 1].Cells[0].Value = a.Date;
dataGridMain.Rows[dataGridMain.Rows.Count - 1].Cells[1].Value = a.Value;
}
或者更好:
var index = grid.Rows.Add();
grid.Rows[index].Cells[....
dataGridMain.Rows.Add();这样做是将行添加到底部还是将其添加到第一个。
如果它在开始时添加了它,那么您只是在添加新记录,但一直在更新相同的记录。您能试试看这是否有效吗
var index = grid.Rows.Add();
var row = grid.Rows[index];
row.Cells[....
row.Cells[....
循环期间行数是否发生变化?什么是A
?a.Date
是否有值?@Dani,每次我执行dataGridMain.Rows.Add();所以我假设行数changes@Hunter,A只是一个数据对象列表,是的A。日期有一个值,但据我所知,计数是变化的。这也是我的第一个猜测,但我认为这不是问题所在。@Anne Schuessler-计数索引会发生变化,因此必须将索引返回到变量(在本例中为整数)。我贴了一个例子。
foreach(var a in A)
{
YourObject row = new YourObject(){a.Date, a.Value};
dataGridMain.Rows.Add(row);
}