我在TabControl中有一个DataGridView,我从文件加载数据,然后解析文件,最后解析的数据加载到dgv中。有时会出现垂直滚动条的问题。虽然数据量高于dgv中可见的数据量,但垂直滚动条被禁用。
我无法弄清楚它是如何发生的。我认为它可能是.NET中的一个错误,因为它是随机出现的,有时滚动条已启用,有时会被禁用。我无法找到如何模拟这个问题。如果我使用dgv最大化并最小化表单,则启用滚动条。
这不是一个大问题,但我只是好奇它是否可以解决。
我无法共享所有代码,但我认为我无法做任何错误将数据源设置为dgv的主要部分:
ControlPresenter:
public List<Record> ListEA
{
get { return listEA; }
private set
{
listEA = value;
mainForm.SetDataSourceEA(value);
}
}
private List<Record> listEA;
的MainForm:
public void SetDataSourceEA(List<Record> listEA)
{
Invoke(new Action(() => { eaDataGridView.DataSource = listEA; }));
}
编辑: 现在,我注意到只有当我在其他TabPage中时才会出现问题,而不是datagridview,所以我尝试用这个函数解决(使用帮助Habib):
private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
{
if (sender is TabControl)
{
var tabControl = (TabControl)sender;
var datagridviews = tabControl.SelectedTab.Controls.OfType<DataGridView>();
datagridviews.Select(x => { x.PerformLayout(); return false; }).ToList();
}
}
似乎问题已经解决了。