首页 > 解决方案 > 优化将数据添加到 DataGridView 的代码

问题描述

我有一个循环执行很多次(比如 25000 次)。在循环内部,有一个代码可以将一行添加到 DataGridView。

dvg->Rows->Add();

完整代码如下:

    for(int i = 0 ; i < m_Items->Length ; i++)
        {
            dgv->Rows->Add(); 

            dgv->Rows[i]->Cells[this->IDColumn->Index]->Value = safe_cast<System::Object^>(0);

            dgv->Rows[i]->Cells[this->ModColumn->Index]->Value = <<"Data from database">>

            dgv->Rows[i]->Cells[this->RunColumn->Index]->Value = <<"Data from database">>
        }

该语句执行 25000 次需要几秒钟。所以我试图优化这段代码的时间。

我知道进入循环之前的行数。所以我想把这个调用移出循环并调用一个可以一次添加 25000 行的函数。我在网上搜索,这是我到目前为止所尝试的。

我尝试通过将DataGridViewRow对象作为参数传递来使用DataGridView::AddRange函数。但是网上找到的示例代码令人困惑。由于我是 C# 代码的新手,我不知道如何继续。

我宣布

DataGridViewRow Test;

现在,如何编写代码告诉DataGridView中的列需要与 dvg 中的列相同(如果甚至需要)?

test在调用DataGridView::AddRange之前是否必须填充数据?

有人可以帮忙吗?

标签: c++

解决方案


推荐阅读