Tuesday, 31 March 2015

Change the ForeColor of individual items in a ComboBox (C# Winforms)


Following steps-

1-  select drowmode property to ownerDrawFixed

2-

private void Form2_Load(object sender, EventArgs e)
        {
         
                this.comboBox1.Items.Add("Test1");
                this.comboBox1.Items.Add("Test2");
                this.comboBox1.Items.Add("Test3");
                this.comboBox1.Items.Add("Test4");
                this.comboBox1.Items.Add("Test5");
                this.comboBox1.Items.Add("Test6");
           
        }

        private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
        {
            // Draw the background
            e.DrawBackground();
            // Get the item text   
            string text = ((ComboBox)sender).Items[e.Index].ToString();
            // Determine the forecolor based on whether or not the item is selected   
            Brush brush;
            if (IsItemDisabled(e.Index))// compare  date with your list. 
            {
                brush = Brushes.Red;
            }
            else
            {
                brush = Brushes.Gray;
            }

            // Draw the text   
            e.Graphics.DrawString(text, ((Control)sender).Font, brush, e.Bounds.X, e.Bounds.Y);
        }

        void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (IsItemDisabled(comboBox1.SelectedIndex))
                comboBox1.SelectedIndex = -1;
        }

        bool IsItemDisabled(int index)
        {
            // We are disabling item based on Index, you can have your logic here
            return index % 2 == 1;
        }


No comments:

Post a Comment

How to highlight selected text in notepad++

  –> To highlight a block of code in Notepad++, please do the following steps step-1  :- Select the required text. step-2  :- Right click...