В моем проекте у меня аналогичная потребность.
Что я сделал, так это прослушал событие ControlAdded и проверил, что если этот элемент управления имеет требуемый тип ... я установил эти свойства.
Чтобы это было действительно автоматически ... вы должны поместить такую логику в базовый класс форм. В моем случае ВСЕ мои Формы наследуются от базовой с логикой рисования градиентного фона и устанавливают стандартные свойства для моих форм (Значок, границы и т. Д.)
В следующем примере я использую элемент управления «MGButton» и задаю его свойства. Вы можете сделать CASE здесь, чтобы настроить все ваши элементы управления. Я также использую пользовательское свойство, чтобы знать, когда НЕ использовать значения по умолчанию.
Private Sub FormBase_ControlAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.ControlEventArgs) Handles MyBase.ControlAdded
If e.Control.GetType().ToString = "CommonUI.MGButton" Then
Dim boton As CommonUI.MGButton = CType(e.Control, CommonUI.MGButton)
With boton
If CType(.Tag, String) <> "OverrideDefaults" Then
.ColorBorde = System.Drawing.Color.Black
.ColorBordeFocus = System.Drawing.Color.Transparent
.ColorFinal = System.Drawing.Color.NavajoWhite
.ColorFinalDisabled = System.Drawing.Color.WhiteSmoke
.ColorFinalOver = System.Drawing.Color.Sienna
.ColorInicial = System.Drawing.Color.Peru
.ColorInicialDisabled = System.Drawing.Color.SeaShell
.ColorInicialOver = System.Drawing.Color.Sienna
End If
End With
End If
End Sub