C#如何设置Combobox下拉框中已选过的项的背景颜色 要详细代码

如题所述

    public partial class Form1 : Form
    {
        List<string> its = new List<string>();
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
        }

        private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
        {
            string s = comboBox1.Items[e.Index].ToString();

            Color c = its.Contains(s) ? Color.LightBlue : Color.White;

            Font font = new Font("宋体", 8);
            Rectangle r = new Rectangle(2, e.Bounds.Top + 2,
                e.Bounds.Height, e.Bounds.Height - 4);
            e.DrawBackground();
            e.Graphics.FillRectangle(new SolidBrush(c), r);
            e.Graphics.DrawString(s, font, Brushes.Black, new RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height));
            e.DrawFocusRectangle();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            its.Add(comboBox1.Text);
        }
    }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-14

你是要做到以下哪种效果?

    如果当前项之前已经选择过,则改变ComboBox显示部分的背景色

    如果当前项之前已经选择过,则改变该项在下拉框中的颜色

追问

第2种如何实现

第2个回答  2013-08-14
Combobox应该没有这样的功能。
相似回答