C# - DataGridView,垂直滚动条无法正常工作

时间:2018-05-22 11:28:33

标签: c# datagridview vertical-scrolling

我在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; }));            
}

禁用垂直滚动条的图片: enter image description here

编辑: 现在,我注意到只有当我在其他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();
            }            
        }

似乎问题已经解决了。

0 个答案:

没有答案