C# Winform编程ListBox之添加图标

简介:

先上图:

 

这里添加固定的图片的。

代码:

 

 
  1. private Color RowBackColorAlt=Color.FromArgb(200,200,200);//交替色 
  2. private Color RowBackColorSel = Color.FromArgb(150, 200, 250);//选择项目颜色 
  3.  
  4. public Form1() 
  5.     InitializeComponent();             
  6.     listBox1.DrawMode = DrawMode.OwnerDrawFixed; 
  7.     listBox1.ItemHeight = 24; 
  8.  
  9. private void listBox1_DrawItem(object sender, DrawItemEventArgs e) 
  10.     Brush myBrush = Brushes.Black; 
  11.  
  12.     if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) 
  13.     { 
  14.         myBrush = new SolidBrush(RowBackColorSel); 
  15.     } 
  16.     else if (e.Index % 2 == 0) 
  17.     { 
  18.         myBrush = new SolidBrush(RowBackColorAlt); 
  19.     } 
  20.     else 
  21.     { 
  22.         myBrush = new SolidBrush(Color.White); 
  23.     } 
  24.     e.Graphics.FillRectangle(myBrush, e.Bounds); 
  25.     e.DrawFocusRectangle();//焦点框 
  26.  
  27.     //绘制图标 
  28.     Image image = Image.FromFile("images/item.png"); 
  29.     Graphics g = e.Graphics; 
  30.     Rectangle bounds = e.Bounds; 
  31.     Rectangle imageRect = new Rectangle( 
  32.         bounds.X, 
  33.         bounds.Y, 
  34.         bounds.Height, 
  35.         bounds.Height); 
  36.     Rectangle textRect = new Rectangle( 
  37.         imageRect.Right, 
  38.         bounds.Y, 
  39.         bounds.Width - imageRect.Right, 
  40.         bounds.Height); 
  41.  
  42.     if (image != null
  43.     { 
  44.         g.DrawImage( 
  45.             image, 
  46.             imageRect, 
  47.             0, 
  48.             0, 
  49.             image.Width, 
  50.             image.Height, 
  51.             GraphicsUnit.Pixel); 
  52.     } 
  53.  
  54.     //文本 
  55.     StringFormat strFormat = new StringFormat(); 
  56.     //strFormat.Alignment = StringAlignment.Center; 
  57.     strFormat.LineAlignment = StringAlignment.Center; 
  58.     e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), textRect,strFormat); 

 





 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/429923,如需转载请自行联系原作者

相关文章
|
1月前
|
C#
24. C# 编程:用户设定敌人初始血值的实现
24. C# 编程:用户设定敌人初始血值的实现
22 0
|
2月前
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
78 0
|
2月前
C#WinForm基础编程(二)
C#WinForm基础编程
59 0
|
5天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
|
5天前
|
程序员 C#
C#编程中的面向对象编程思想
【4月更文挑战第21天】本文探讨了C#中的面向对象编程,包括类、对象、封装、继承和多态。类是对象的抽象,定义属性和行为;对象是类的实例。封装隐藏内部细节,只暴露必要接口。继承允许类复用和扩展属性与行为,而多态使不同类的对象能通过相同接口调用方法。C#通过访问修饰符实现封装,使用虚方法和抽象方法实现多态。理解并应用这些概念,能提升代码的清晰度和可扩展性,助你成为更好的C#程序员。
|
6天前
|
IDE 程序员 C#
C#编程入门:从零开始的旅程
【4月更文挑战第20天】本文引导初学者入门C#编程,从环境搭建开始,推荐使用Visual Studio Community版作为IDE。接着,通过编写"Hello, World!"程序,介绍基本语法,包括数据类型、运算符和表达式。文章还涉及控制结构、函数和方法,以及面向对象编程概念。通过学习,读者将对C#有初步了解,并激发进一步探索编程世界的兴趣。
|
6天前
|
开发框架 .NET Java
探索 C#编程的奥秘与魅力
【4月更文挑战第20天】C#是微软开发的现代、面向对象的编程语言,以其简洁语法、强大功能和跨平台支持脱颖而出。它支持自动垃圾回收、泛型、委托、LINQ,并广泛应用于桌面、Web、移动和游戏开发。C#拥有活跃的开发者社区和丰富的资源,是Unity游戏开发的首选语言。随着.NET Core,C#可在多个操作系统上运行,持续创新,未来发展潜力巨大。
|
6天前
|
缓存 算法 测试技术
优化 C#编程性能的策略
【4月更文挑战第20天】优化C#性能策略包括:选择合适算法和数据结构,避免频繁对象创建,缓存常用数据,减少内存分配,使用异步编程,优化数据库操作(如合理查询和使用索引),利用多线程并行处理,精简代码,使用性能分析工具,硬件升级,以及进行性能测试。综合应用这些策略可提升程序性能和响应性。
|
1月前
|
C# 数据库 虚拟化
43.c#:listbox控件
43.c#:listbox控件
16 1
|
1月前
|
C# 开发者
35.c#:winform窗口
35.c#:winform窗口
13 1