Проблема, с которой вы столкнулись, заключается в том, что даже если ваш новый элемент управления наследуется от базового элемента управления, не существует автоматического способа применения существующих свойств к новому, добавляемому вами при вызове controlBase = new ControlInherited1();
.По сути, вы потеряете всю информацию об исходном элементе управления при перезаписи исходной переменной, создав новый экземпляр класса ControlInherited1
и установив его в качестве значения controlBase
.
. Правильный способзаменить существующий элемент управления будет сначала удалить существующий элемент управления, а затем добавить другой в форму, как показано ниже:
this.Controls.Remove(controlBase);
this.Controls.Add(newControl);
Вдобавок к этому вам придется сделать некоторую ручную работу, чтобы сделатьУбедитесь, что все свойства, которые вы хотите сохранить из исходного элемента управления, применяются к новому (замененному).