如何让DataGridView正确呈现?

时间:2016-07-18 11:31:09

标签: c# datagridview

我在表单上有一个DataGridView,当前一步骤中的某些内容加载到DataTable对象的某些数据中时(这是一个向导类型的应用程序,这是在TabControl中)。从上一步开始,有一个文件放入DataGridView,并添加了一些额外的列。澄清一下:填充表格完全按照它应该运行 - 数据本身没有问题。

我的问题是,从上一步移动时,DataGridView无法正确呈现。它仍然显示数据应该在的上一步,并且仅在我选择单元格时显示数据(单个单元格 - 它呈现该单元格的位置(当我将鼠标悬停在readonly = false单元格上或单击readonly = true单元格时)或选择整个表格。屏幕截图如下:

首次渲染屏幕时:

when the screen is first rendered

当我选择所有单元格时:

when the cells are selected

在我填充DataGridView之后,我尝试以编程方式选择所有单元格(使用datagridview1.SelectAll()),但这没有任何区别。我还尝试使用datagridview1.Select()方法并设置datagridview1.CurrentCell = datagridview1.Rows[0].Cells[0]

我不确定这可以用代码解决 - 有没有办法确保单元格正确渲染或者这是我的本地机器的问题?

1 个答案:

答案 0 :(得分:1)

如果您在容器隐藏在未选中 TabPage中时加载了数据,则显示更新将被阻止。

要使其生效,您可以对Selected事件进行编码:

private void tabControl1_Selected(object sender, TabControlEventArgs e)
{
    foreach (Control ctl in tabControl1.SelectedTab.Controls) ctl.Refresh();
}