【问题标题】:Datagridview creation数据网格视图创建
【发布时间】:2012-02-18 14:07:59
【问题描述】:

我正在尝试在一个事件上创建一个 datagridview。但是我遇到了奇怪的错误。

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

代码的一部分:

        //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 框架项目。

【问题讨论】:

    标签: c++ visual-studio-2010 user-interface datagridview


    【解决方案1】:

    您的列对象已声明但未实例化。您需要像 dataGridView1 一样 gcnew 它们。您收到 NullReference 异常,因为您在最后一行使用未实例化的对象。像这样调整你的代码:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-27
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多