读书人

窗体程序listbox改变色彩

发布时间: 2012-08-25 10:06:20 作者: rapoo

窗体程序listbox改变颜色
我要改变listbox 中的item颜色 ,要做的效果是 开始加载的是默认黑色,点击按钮后item 改变颜色
我现在只能是 单机按钮后,必须fouce 一下listbox 才能变色

C# code
      private void button1_Click(object sender, EventArgs e)        {            listBox1.DrawItem+= new System.Windows.Forms.DrawItemEventHandler(DrawItemHandler);            listBox1.Update();        }        private void Form1_Load(object sender, EventArgs e)        {            listBox1.Items.Add("aaa");        }        private void button2_Click(object sender, EventArgs e)        {            listBox1.Items.Add("aaa");            listBox1.Items.Add("aaa");            listBox1.Items.Add("aaa");            listBox1.Items.Add("aaa");            listBox1.Items.Add("aaa");        }        private void DrawItemHandler(object sender, System.Windows.Forms.DrawItemEventArgs e)        {            // Set the DrawMode property to draw fixed sized items.            listBox1.DrawMode = DrawMode.OwnerDrawVariable;            // Draw the background of the ListBox control for each item.            e.DrawBackground();            e.DrawFocusRectangle();            // Define the default color of the brush as black.            Brush myBrush = Brushes.Orange;            switch (e.Index)            {                case 0:                    myBrush = Brushes.Red;                    break;                case 1:                    myBrush = Brushes.Orange;                    break;                case 2:                    myBrush = Brushes.Purple;                    break;            }            // Draw the current item text based on the current Font and the custom brush settings.            e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);                              }


[解决办法]
listBox1.Invalidate();

读书人网 >C#

热点推荐