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:
chi mi può spiegare questo fenomeno e magari una dritta?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![]()


Rispondi quotando