Ошибка с кастомным Control
В некоторых проектах использую кастомную версию DataGridView с отображение вертикального скрола по умолчанию даже если нет никаких записей. Пример контрола такой:
internal partial class CustomDataGridView : DataGridView
{
internal CustomDataGridView() : base()
{
this.VerticalScrollBar.Visible = true;
this.VerticalScrollBar.VisibleChanged += new EventHandler(VerticalScrollBar_VisibleChanged);
}
internal void VerticalScrollBar_VisibleChanged(object sender, EventArgs e)
{
if (!this.VerticalScrollBar.Visible)
{
this.VerticalScrollBar.Location = new Point(this.ClientRectangle.Width - this.VerticalScrollBar.Width - 1, 1);
this.VerticalScrollBar.Height = this.ClientRectangle.Height - 2;
this.VerticalScrollBar.Width = this.VerticalScrollBar.Width;
this.VerticalScrollBar.Show();
}
}
}
Он работает исправно, но при любом изменении в редакторе формы, её контролов и даже этого контрола теряется инициализация этого контрола в Form.Designer.cs и приходится руками прописывать заново его следующей строкой:
this.dataGridView1 = new CustomDataGridView();
Есть ещё несколько контролов как расширителей от базовых контролов с переопределением функционала, но с ними нет никаких проблем в формах.
Вопрос: в чём может быть проблема такого поведения Visual Studio 2017 (возможно и для других версий тоже) и как это исправить?