私のプロジェクトでも同様のニーズがあります。私がしたことは、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