我需要我用datagridview
填写一些列表中的值。
我试着这样做:
List<List<object>> objList1 = new List<List<object>>
{
new List<object> {null, null, null, "Some Value"},
new List<object> {"Some text", "Another Text", 212}
};
List<List<object>> objList2 = new List<List<object>>
{
new List<object> {null, null, null, "Some Value from 2 list"},
new List<object> {"Some text 3", "Another Text 5", 34}
};
foreach (var objList in objList1)
{
dataGridView.Rows.Add();
for (int i = 0; i < objList.Count -1; i++)
{
dataGridView.Rows[dataGridView.RowCount - 1].Cells[i].Value = objList[i] != null ? objList[i].ToString() : "";
}
}
dataGridView.Rows.Add();
foreach (var objList in objList2)
{
dataGridView.Rows.Add();
for (int i = 0; i < objList.Count - 1; i++)
{
dataGridView.Rows[dataGridView.RowCount - 1].Cells[i].Value = objList[i] != null ? objList[i].ToString() : "";
}
}
dataGridView.Rows.Add();
但是我没有填充datagridview
,而是只填充了最后一行:
答案 0 :(得分:1)
但是让我的datagridview填充后,我只得到最后一行填充
您将AllowUserToAddRow
属性设置为true
。所以,当你写作时:
dataGridView.Rows[dataGridView.RowCount - 1]
每次添加新行时,都可以访问“替换”的新行。它应该是
dataGridView.Rows[dataGridView.RowCount - 2]
请注意,dataGridView.Rows.Add()
方法为您提供添加行的索引。所以你也可以写:
int addedRowindex = DataGridView.Rows.Add();
DataGridView.Rows[addedRowindex].Cells[i].Value = ...
我不确定你究竟想要做什么。如果我将RowCount - 1
替换为RowCount - 2
,我会得到:
另外
for (int i = 0; i < objList.Count -1; i++)
不应该
for (int i = 0; i <= objList.Count - 1; i++)
结果: