C # - DataGridView, вертикальная полоса прокрутки не работает правильно - PullRequest
0 голосов
/ 22 мая 2018

У меня есть 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; }));            
}

Изображение с отключенной вертикальной полосой прокрутки: 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();
            }            
        }

И похоже, что проблема была решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...