Я пытаюсь понять и понять, что и как делает C #. Я исторически являюсь разработчиком Visual Foxpro (VFP) и несколько избалован годами визуального наследования, создавая собственный базовый уровень пользовательских элементов управления для использования в приложениях.
Пытаясь изучить параллели в C #, я застрял на чем-то. Скажем, я получил свой собственный элемент управления меткой (элемент управления является подклассом метки), определенный с помощью шрифта «Arial», 10 баллов. Затем в любой форме, к которой я ее добавлю, Designer автоматически предварительно заполнит некоторые значения свойств, которые можно увидеть в части «Designer.cs» класса Form.
this.LabelHdr2.AutoSize = true;
this.LabelHdr2.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold);
this.LabelHdr2.ForeColor = System.Drawing.Color.Blue;
this.LabelHdr2.Location = new System.Drawing.Point(150, 65);
this.LabelHdr2.Name = "LabelHdr2";
this.LabelHdr2.Size = new System.Drawing.Size(158, 22);
this.LabelHdr2.TabIndex = 5;
this.LabelHdr2.Text = "LabelHdr2";
Я хочу предотвратить создание таких вещей, как Шрифт, Цвет, Размер, Авторазмер каждый раз, когда элемент управления помещается в форму. Если позже я решу изменить шрифт с «Arial» 10 на «Tahoma» 11, мне придется вернуться ко всем формам (и любым другим настраиваемым элементам управления) и отредактировать их для изменения.
В VFP, если я изменяю что-либо из своего базового класса, все формы автоматически распознают изменения. Мне не нужно ничего редактировать (за исключением возможных выравниваний с помощью изменения размера) ... но цвет, шрифт и все остальное не составляет проблем в VFP ...
В C # я должен вернуться и изменить каждую форму, чтобы она распознавалась новыми / обновленными значениями класса ...
Есть ли разумный способ избежать этого?