热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#Winform编程ListBox之添加图标

 先上图: 这里添加固定的图片的。代码: private Color RowBackColorAltColor.FromArgb(200,200,200);交替色 private 

 先上图:

 

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); 

推荐阅读
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • C#多线程解决界面卡死问题的完美解决方案
    当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • 有些代码在图片上写上文字后文字会不太清楚,加阴影效果也不理想,请教有没有加光晕的?效果就像新浪新闻左上角的图片新闻那样.比如这张图片:http:image2.sina.com.cndyFo ... [详细]
  • 这两天用到了ListView,写下遇到的一些问题。首先是ListView本身与子控件的焦点问题,比如我这里子控件用到了Button,在需要ListView中的根布局属性上加上下面的这一个属性:and ... [详细]
author-avatar
归向大海_651
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有