listbox美化——添加图片、修改背景色

来源:互联网 发布:imovie在mac上怎么导出 编辑:程序博客网 时间:2024/05/16 01:50

先上图:

 

这里添加固定的图片的。

代码:




        private Color RowBackColorAlt = Color.FromArgb(200, 200, 200);//交替色         private Color RowBackColorSel = Color.FromArgb(150, 200, 250);//选择项目颜色         public Form1()        {            InitializeComponent();            listBox1.DrawMode = DrawMode.OwnerDrawFixed;            listBox1.ItemHeight = 24;        }        private void listBox1_DrawItem(object sender, DrawItemEventArgs e)        {            Brush myBrush = Brushes.Black;            if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)            {                myBrush = new SolidBrush(RowBackColorSel);            }            else if (e.Index % 2 == 0)            {                myBrush = new SolidBrush(RowBackColorAlt);            }            else            {                myBrush = new SolidBrush(Color.White);            }            e.Graphics.FillRectangle(myBrush, e.Bounds);            e.DrawFocusRectangle();//焦点框             //绘制图标             Image image = Image.FromFile("images/item.png");            Graphics g = e.Graphics;            Rectangle bounds = e.Bounds;            Rectangle imageRect = new Rectangle(                bounds.X,                bounds.Y,                bounds.Height,                bounds.Height);            Rectangle textRect = new Rectangle(                imageRect.Right,                bounds.Y,                bounds.Width - imageRect.Right,                bounds.Height);            if (image != null)            {                g.DrawImage(                    image,                    imageRect,                    0,                    0,                    image.Width,                    image.Height,                    GraphicsUnit.Pixel);            }            //文本             StringFormat strFormat = new StringFormat();            //strFormat.Alignment = StringAlignment.Center;             strFormat.LineAlignment = StringAlignment.Center;            e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), textRect, strFormat);        }


原文连接:http://www.cnblogs.com/zhwl/archive/2013/06/07/3123444.html

原创粉丝点击