Mam fragment kodu, który odpowiada za odświeżanie datagridview ale po dodaniu pierwszego urządzenia wywala NullReferenceException: Object reference not set to an object.
Wadliwy fragment kodu:
dataGridView1.Rows.Clear(); dataGridView1.Columns.Clear(); string[,] devs = Funkcje.LoadDevices(); string[] columns = { "ID", "Typ", "Nazwa","Timer" }; for (int i = 0; i < 4; i++) { dataGridView1.Columns.Add(columns[i], columns[i]); }
for (int row = 0; row < Funkcje.CountDevices(); row++) { string[] device = new string[4]; for (int j = 0; j < 4; j++) { device[j] = devs[row, j]; } DataGridViewRow wiersz = (DataGridViewRow)dataGridView1.RowTemplate.Clone(); wiersz.CreateCells(dataGridView1, device); this.dataGridView1.Rows.Add(wiersz); //w tym miejscu już po pierwszej iteracji wywala błąd } Pomóżcie proszę bo idzie nerwicy dostać! #programowanie #pytanie #kiciochpyta
@giluu91: tylko raz bezpośrednio do dgv coś dodawałem ręcznie. zrobiłem to tak: dgv.Rows.Add(); int i = dgv.Rows.Count - 1; DataGridViewRow r = dgv.Rows[i]; r.Cells[0].Value = "cos"; Może niezbyt elegancko ale działa ;)
Mam fragment kodu, który odpowiada za odświeżanie datagridview ale po dodaniu pierwszego urządzenia wywala NullReferenceException: Object reference not set to an object.
Wadliwy fragment kodu:
dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
string[,] devs = Funkcje.LoadDevices();
string[] columns = { "ID", "Typ", "Nazwa","Timer" };
for (int i = 0; i < 4; i++)
{
dataGridView1.Columns.Add(columns[i], columns[i]);
}
for (int row = 0; row < Funkcje.CountDevices(); row++)
{
string[] device = new string[4];
for (int j = 0; j < 4; j++)
{
device[j] = devs[row, j];
}
DataGridViewRow wiersz = (DataGridViewRow)dataGridView1.RowTemplate.Clone();
wiersz.CreateCells(dataGridView1, device);
this.dataGridView1.Rows.Add(wiersz); //w tym miejscu już po pierwszej iteracji wywala błąd
}
Pomóżcie proszę bo idzie nerwicy dostać!
#programowanie #pytanie #kiciochpyta
Komentarz usunięty przez autora
1. Pastebin (albo coś podobnego)
2. Postaw sobie breakpointa i zobacz co jest nullem.
dgv.Rows.Add();
int i = dgv.Rows.Count - 1;
DataGridViewRow r = dgv.Rows[i];
r.Cells[0].Value = "cos";
Może niezbyt elegancko ale działa ;)