Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向DataGridView添加行时,是否只显示一行?_C#_Winforms_Datagridview - Fatal编程技术网

C# 向DataGridView添加行时,是否只显示一行?

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)

当我运行上面的循环时,它会添加所有行,但只有最后一行包含任何数据。我做错了什么?

你的索引没有改变。 您可以将dataGridMain.Rows.Count-1声明为索引

看起来计数没有变化,似乎您需要首先获取索引,将其存储在变量中,然后添加值:

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