DataGridView无法即时刷新

时间:2015-05-20 04:08:10

标签: c# winforms datagridview

我在DataGridView中创建了C#

private void SomeFunc()
{ 
    DataGridView errorDataGrid = new System.Windows.Forms.DataGridView();

    // Set properties for DataGrid View
    // ..
    // ..

    // Add to the panel
    somePanel.Controls.Add(this.errorDataGrid);
}

private void ShowOnGrid(string _message)
{
    // create a new row and add a text to it
    DataGridViewRow newRow = new DataGridViewRow();
    newRow.CreateCells(this.errorDataGrid, _message);

   // add this row to grid
   this.errorDataGrid.Rows.Add(newRow);
   // and scroll the bar to the newly added row, [currentRow = 0 initially]
   this.errorDataGrid.FirstDisplayedScrollingRowIndex = currentRow++;
}

问题是添加到网格后不会立即显示数据(_message)。相反,它会在程序结束时突然显示

ShowOnGrid("My Message to show - 1")
ShowOnGrid("My Message to show - 2")
ShowOnGrid("My Message to show - 3")
ShowOnGrid("My Message to show - 4")
ShowOnGrid("My Message to show - 5")
ShowOnGrid("My Message to show - 6")
// End of program

所以所有消息都显示在我的程序结束时。 我错过了什么吗?或者上面的程序出了什么问题?

我提到了以下内容,但无法找到任何有意义的内容:

1 个答案:

答案 0 :(得分:0)

在UI线程上调用了您的ShowOnGrid方法。因此,当调用方法CallShowOnGrid而调用ShowOnGrid方法时,会阻止UI线程。只有在执行了所有ShowOnGrid方法后,才会刷新它(称之为)。

如果您可以显示调用ShowOnGrid方法的方法以及更多上下文,则有人可以提供解决方案。