2012-02-18 39 views
1

我想创建一个事件的datagridview。但我遇到了一个奇怪的错误。Datagridview创建

System.NullReferenceException未处理消息=对象引用 未设置为对象的实例。

的代码的一部分:

 //Creating table 
     System::Windows::Forms::DataGridView^ dataGridView1; 
     System::Windows::Forms::DataGridViewTextBoxColumn^ Column1; 
     System::Windows::Forms::DataGridViewTextBoxColumn^ Column2; 

     dataGridView1 = (gcnew System::Windows::Forms::DataGridView()); 

     // 
     // dataGridView1 
     // 
     dataGridView1->AllowUserToAddRows = false; 
     dataGridView1->AllowUserToDeleteRows = false; 
     dataGridView1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize; 
     dataGridView1->Columns->AddRange(gcnew cli::array<System::Windows::Forms::DataGridViewColumn^>(2) {Column1, 
      Column2}); 

的误差示出在上面的代码中的最后一行。 接缝是因为我在定义对象时犯了错误,或者忘记了定义其他东西。

我在哪里犯了一个错误?

我正在使用Visual Studio 2010并在Windows框架项目上工作。

回答

1

您的列对象已声明但未实例化。你需要像dataGridView1那样重新编写它们。你会得到一个NullReference异常,因为你正在处理最后一行的未被实例化的对象。像这样调整代码:

// ... 
dataGridView1 = (gcnew System::Windows::Forms::DataGridView()); 
Column1 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); 
Column2 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); 
// ...