C# Динамически добавить сбой DataGridViewRow
У меня есть программа, которая будет добавлять строки динамически в определенных условиях, я попытался реализовать функцию следующим образом:
if (student.UUID == AppliedStudent)
{
using (DataGridViewRow row = new DataGridViewRow())
{
row.SetValues(new object[] { lesson.Name, Course.Course_Name, lesson.Level, lesson.Time, Teacher.C_Name, lesson.Price, Classroom.Classroom_Name });
row.DefaultCellStyle.BackColor = Color.LightGreen;
row.DefaultCellStyle.SelectionBackColor = Color.SkyBlue;
dataGridView1.Rows.Add(row);
}
}
С помощью этого кода он может действительно добавлять строки, однако они все пусты, во всех этих строках нет данных. (Было подтверждено, что lesson
, course
а также Teacher
не null
.) Кто-нибудь может помочь? Спасибо!
2 ответа
Решение
Я наконец-то понял это, я заменил row.SetValues
в row.CreateCells
:
if (student.UUID == AppliedStudent)
{
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(dataGridView1, lesson.Name, Course.Course_Name, lesson.Level, lesson.Time, Teacher.C_Name, lesson.Price, Classroom.Classroom_Name);
row.DefaultCellStyle.BackColor = Color.LightGreen;
row.DefaultCellStyle.SelectionBackColor = Color.SkyBlue;
dataGridView1.Rows.Add(row);
}
С этим кодом это будет хорошо работать. Спасибо всем за попытку помочь!
Вы должны оставить using
часть. После этого row
Объект будет расположен:
if (student.UUID == AppliedStudent)
{
DataGridViewRow row = new DataGridViewRow();
row.SetValues(new object[] { lesson.Name, Course.Course_Name, lesson.Level, lesson.Time, Teacher.C_Name, lesson.Price, Classroom.Classroom_Name });
row.DefaultCellStyle.BackColor = Color.LightGreen;
row.DefaultCellStyle.SelectionBackColor = Color.SkyBlue;
dataGridView1.Rows.Add(row);
}