In my project I have a similar need.
What I did was listen to the ControlAdded event, and check that if that control is of the desired type... I set those properties.
To this be really automatic... you should place such logic in the Form Base Class. In my case, ALL my Forms inherits from a base one with the logic of painting a gradient background and set standard properties for my forms (Icon, borders, etc.
In the following example, I use a control called "MGButton" and set its properties. You can do a CASE here to customize all your controls. I also use a custom property to know when NOT to use the defaults.
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