多彩世界实现C#Listbox自绘

使用控件的DrawMode属性来实现控件的自绘,首先将C# Listbox的DrawMode设置为OwnerDrawVariable,然后实现DrawItem ,MeasuerItem方法。

10年积累的成都做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有香河免费网站建设让你可以放心的选择与我们合作。

编写如下代码:

 
 
 
 
  1. private void listBox1_DrawItem(object sender, DrawItemEventArgs e)  
  2.       {  
  3.           e.DrawBackground();  
  4.           Rectangle r = new Rectangle(0, 0, lbCustomDraw.Width, 100);  
  5.           bool selected = ((e.State & DrawItemState.Selected) == DrawItemState.Selected);  
  6.           LinearGradientBrush lgb = null;  
  7.           if (!selected)  
  8.           {  
  9.               lgb = new LinearGradientBrush(r, Color.Red, Color.Yellow, LinearGradientMode.Horizontal);  
  10.           }  
  11.           else 
  12.           {  
  13.               lgb = new LinearGradientBrush(r, Color.Cyan, Color.White, LinearGradientMode.Horizontal);  
  14.           }  
  15.           e.Graphics.FillRectangle(lgb, e.Bounds);  
  16.           e.Graphics.DrawRectangle(SystemPens.WindowText, e.Bounds);  
  17.           Rectangle r2 = e.Bounds;  
  18.           string displayText = (string)lbCustomDraw.Items[e.Index];  
  19.           SizeF size = e.Graphics.MeasureString(displayText, this.Font);  
  20.           r2.Y = (int)(r2.Height / 2) - (int)(size.Height / 2) + e.Bounds.Y;  
  21.           r2.X = 2;  
  22.           e.Graphics.DrawString(displayText, this.Font, Brushes.Black, r2);  
  23.           e.DrawFocusRectangle();  
  24.       }  
  25.       private void listBox1_MeasureItem(object sender, MeasureItemEventArgs e)  
  26.       {  
  27.           string displayText = (string)lbCustomDraw.Items[e.Index];  
  28.           SizeF size = e.Graphics.MeasureString(displayText, this.Font);  
  29.           size.Height += 10;  
  30.           e.ItemHeight = (int)size.Height;  
  31.       }  

最终效果:

多彩世界 实现C# Listbox自绘

以上就是C#  Listbox的自绘方法,很漂亮吧。

新闻名称:多彩世界实现C#Listbox自绘
标题URL:http://www.mswzjz.com/qtweb/news26/172576.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联