salve ragazzi,

apro questo topic perchè ho un dilemma da risolvere...
provo a spiegarmi e a fare qualche esempio:

ho necessità di impostare il colore di BackGround di alcune ComboBox e TextBox, quando disabilitate devono avere lo stesso colore di BackGround come il loro contenitore (nel mio caso il contenitore è un Form)

ho creato tutto il codice affichè possa gestire questa cosa (comprese TextBox presenti) e tutto sembrava funzionare fino a quando ho dovuto cambiare il colore di BackGround del Form da "Control" (Default) a un colore diverso, per esempio "Grey".
praticamente le combobox non prendono il colore giusto del form..

vi posto due immagini di una prova che sto facendo, per rendere meglio lo scenario di quando abilitate e quando disabilitate.


praticamente le textbox assumono il colore del form mentre le combobox no

questo è il codice che sto usando per effettuare la prova:
codice:
,
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For Each C As Control In Me.Controls
            If {"TextBox", "ComboBox"}.Contains(C.GetType.Name) Then _
                AddHandler C.EnabledChanged, AddressOf Controlli_EnabledChanged
        Next
    End Sub

    Private Sub Controlli_EnabledChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
        With sender
            Dim Abilitato As Boolean = .Enabled
            Select Case .GetType.Name
                Case "TextBox"
                    .borderstyle = IIf(Abilitato, BorderStyle.Fixed3D, BorderStyle.FixedSingle)
                    .BackColor = IIf(Abilitato, Color.White, .Parent.BackColor)
                Case "ComboBox"
                    .DropDownStyle = IIf(Abilitato, ComboBoxStyle.DropDownList, ComboBoxStyle.Simple)
                    .flatstyle = IIf(Abilitato, FlatStyle.Popup, FlatStyle.Standard)
                    .BackColor = IIf(Abilitato, Color.White, .parent.BackColor)
            End Select
        End With
    End Sub

    Private Sub Abilita_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Abilita.Click
        For Each C As Control In Me.Controls
            If {"TextBox", "ComboBox"}.Contains(C.GetType.Name) Then C.Enabled = True
        Next
    End Sub

    Private Sub Disabilita_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Disabilita.Click
        For Each C As Control In Me.Controls
            If {"TextBox", "ComboBox"}.Contains(C.GetType.Name) Then C.Enabled = False
        Next
    End Sub
End Class
chi mi può spiegare questo fenomeno e magari una dritta?