Text Color

Thread is closed for posting
2 posts, 0 answers
  1. Ching-Yen
    Ching-Yen avatar
    65 posts
    Member since:
    Nov 2007

    Posted 24 Apr 2008 Link to this post

    May I know how can I change the combo box text color, example
    the combobox having a list like below

    When that item is selected, the forecolor show on the combo box is the text color.

    below are some of my code...

    6:          For i As Integer = 0 To _Color.Items.Count - 1
    7:              Dim item As New Telerik.WinControls.UI.RadComboBoxItem()
    8:              Dim fillElement As Telerik.WinControls.Primitives.FillPrimitive = DirectCast(item.Children(0), Telerik.WinControls.Primitives.FillPrimitive)
    9:              fillElement.BackColor = _Color.Item(i).CoverColor
    10:             fillElement.BackColor2 = _Color.Item(i).CoverColor
    11:             fillElement.BackColor3 = _Color.Item(i).CoverColor
    12:             fillElement.BackColor4 = _Color.Item(i).CoverColor
                    item.ForeColor = _Color.Item(i).FontColor
    13:             item.Text = _Color.Item(i).Name
    14:             item.Value = _Color.Item(i).Index
    15:             _cboCTRL.Items.Add(item)
    16:         Next

        Private Sub _ComboColor_SelectedValueChanged(ByVal sender As Object, ByVal e As EventArgs) Handles _cboCoverColor.SelectedValueChanged

    1:      Dim item As RadComboBoxItem = DirectCast(_cboCoverColor.SelectedItem, RadComboBoxItem)
    2:      If item Is Nothing Then
    3:          Return
    4:      End If

            _cboCoverColor.ForeColor = item.ForeColor
        End Sub

    but seems like no luck... i only manage to change the drop down text to the color I would like it to be, but, not the text color while it's selected.

    Please advice.

  2. Martin Vasilev
    Martin Vasilev avatar
    1061 posts

    Posted 25 Apr 2008 Link to this post

    Hi Ching-Yen,

    Thank you for the question.

    RadComboBox supports flexible visual style settings and you could achieve your scenario. You should set the color properties on every single item, and then by using the SelectedIndexChanged event apply the same color to the selected text. Please review the code-block below as an example:
    Public Partial Class Form1  
        Inherits Form  
        Public Sub New()  
        End Sub 
        Private Sub Form1_Load(ByVal sender As ObjectByVal e As EventArgs)  
            Dim itemRed As New RadComboBoxItem()  
            itemRed.ForeColor = Color.Red  
            itemRed.Text = "Red" 
            Dim itemBlue As New RadComboBoxItem()  
            itemBlue.ForeColor = Color.Blue  
            itemBlue.Text = "Blue" 
            Dim itemGreen As New RadComboBoxItem()  
            itemGreen.ForeColor = Color.Green  
            itemGreen.Text = "Green" 
            Dim itemWhite As New RadComboBoxItem()  
            itemWhite.ForeColor = Color.White  
            (DirectCast(itemWhite.Children(0), FillPrimitive)).BackColor = Color.Black  
            (DirectCast(itemWhite.Children(0), FillPrimitive)).GradientStyle = Telerik.WinControls.GradientStyles.Solid  
            itemWhite.Text = "White" 
            Dim itemBlack As New RadComboBoxItem()  
            itemBlack.ForeColor = Color.Black  
            itemBlack.Text = "Black" 
            Me.radComboBox1.Items.AddRange(itemRed, itemBlue, itemGreen, itemWhite, itemBlack)  
            Me.radComboBox1.NullText = "select the color..." 
            Me.radComboBox1.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList  
        End Sub 
        Private Sub radComboBox1_DropDownClosed(ByVal sender As ObjectByVal args As RadPopupClosedEventArgs)  
            Me.radComboBox1.SelectionLength = 0  
        End Sub 
        Private Sub radComboBox1_SelectedIndexChanged(ByVal sender As ObjectByVal e As EventArgs)  
            (DirectCast(Me.radComboBox1.RootElement.Children(0).Children(2).Children(0).Children(0), RadTextBoxItem)).ForeColor = (DirectCast(Me.radComboBox1.SelectedItem, RadComboBoxItem)).ForeColor  
            (DirectCast(Me.radComboBox1.RootElement.Children(0).Children(2).Children(0).Children(0), RadTextBoxItem)).BackColor = (DirectCast((DirectCast(Me.radComboBox1.SelectedItem, RadComboBoxItem)).Children(0), FillPrimitive)).BackColor  
        End Sub 
    End Class 

    I hope this helps. If you need additional assistance, do not hesitate to contact me again.

    Martin Vasilev
    the Telerik team

    Instantly find answers to your questions at the new Telerik Support Center
Back to Top