我知道有几种方法可以创建一个新的DataGridViewRow
,请参阅如何以编程方式向 datagridview 添加新行
我目前正在创建一个继承自 DGVR 的类,因此我不能让 DGV 通过仅添加值来创建它,我必须创建它是手动的。
但是,我的代码(用 C++/CLI 编写)失败了ArgumentOutOfRangeException
,所以我尝试使用普通的 DGVR,但它也失败了(方法 1)。然后我找到了一个解决方案(方法2),但我不明白它为什么会起作用。
将原始 DGVR 添加到 DGV 后是否以某种方式无效?
{
...
DataGridViewRow^ dgvrTest = gcnew DataGridViewRow();
dgvrTest->CreateCells (dataGridView1);
Object^ oValue = dgvrTest->Cells[0]->Value; // okay
int ixRow = dataGridView1->Rows->Add (dgvrTest);
oValue = dataGridView1->Rows[ixRow]->Cells[0]->Value; // okay
// method #1
oValue = dgvrTest->Cells[0]->Value; // fails after adding the DGVR to the DGV
// method #2
dgvrTest = dataGridView1->Rows[ixRow]; // receives a different object. WHY?
oValue = dgvrTest->Cells[0]->Value; // works
}