У меня есть DataGridView в TabControl, и я загружаю данные из файла, затем файл анализируется, и, наконец, проанализированные данные загружаются в 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();
}
}
И похоже, что проблема была решена.