我在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
所以所有消息都显示在我的程序结束时。 我错过了什么吗?或者上面的程序出了什么问题?
我提到了以下内容,但无法找到任何有意义的内容:
答案 0 :(得分:0)
在UI线程上调用了您的ShowOnGrid
方法。因此,当调用方法CallShowOnGrid
而调用ShowOnGrid
方法时,会阻止UI线程。只有在执行了所有ShowOnGrid
方法后,才会刷新它(称之为)。
如果您可以显示调用ShowOnGrid
方法的方法以及更多上下文,则有人可以提供解决方案。