C#如何实现Listbox自绘功能
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,小编给大家分享一下C#如何实现Listbox自绘功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!使用控件的DrawMode属性来实现控件的自绘,首先将C# Listbox的Draw
千家信息网最后更新 2025年01月25日C#如何实现Listbox自绘功能
小编给大家分享一下C#如何实现Listbox自绘功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
使用控件的DrawMode属性来实现控件的自绘,首先将C# Listbox的DrawMode设置为OwnerDrawVariable,然后实现DrawItem ,MeasuerItem方法。
编写如下代码:
private void listBox1_DrawItem(object sender, DrawItemEventArgs e) { e.DrawBackground(); Rectangle r = new Rectangle(0, 0, lbCustomDraw.Width, 100); bool selected = ((e.State & DrawItemState.Selected) == DrawItemState.Selected); LinearGradientBrush lgb = null; if (!selected) { lgb = new LinearGradientBrush(r, Color.Red, Color.Yellow, LinearGradientMode.Horizontal); } else { lgb = new LinearGradientBrush(r, Color.Cyan, Color.White, LinearGradientMode.Horizontal); } e.Graphics.FillRectangle(lgb, e.Bounds); e.Graphics.DrawRectangle(SystemPens.WindowText, e.Bounds); Rectangle r2 = e.Bounds; string displayText = (string)lbCustomDraw.Items[e.Index]; SizeF size = e.Graphics.MeasureString(displayText, this.Font); r2.Y = (int)(r2.Height / 2) - (int)(size.Height / 2) + e.Bounds.Y; r2.X = 2; e.Graphics.DrawString(displayText, this.Font, Brushes.Black, r2); e.DrawFocusRectangle(); } private void listBox1_MeasureItem(object sender, MeasureItemEventArgs e) { string displayText = (string)lbCustomDraw.Items[e.Index]; SizeF size = e.Graphics.MeasureString(displayText, this.Font); size.Height += 10; e.ItemHeight = (int)size.Height; }
最终效果:
看完了这篇文章,相信你对"C#如何实现Listbox自绘功能"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
C#
功能
控件
篇文章
代码
完了
属性
效果
方法
更多
知识
行业
资讯
资讯频道
频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发流行开发工作
邮件服务器必须是公网吗
上海大学生网络技术大赛
安信网络安全科技馆
服务器停了会自己启动吗
网络安全法于好多实施
网络安全的黑板报评比
网络技术相关视频
英雄联盟数据库数据丢失
怎么保证硬件服务器安全
期刊数据库更新的时候
在上海从事软件开发工作
黑龙江网络技术服务咨询报价
网络安全维护毕业设计
松江区网络技术服务联系方式
目前国家网络安全主要风险
服务器和家用电脑哪个稳定
辽宁机电软件开发技术规范
广东开创网络安全
如何通过外网访问局域网内服务器
嘉会医疗软件开发
应用软件开发上市公司
苏州有实力的软件开发公司
数据库表管理技术
服务器lisense
服务器安全通知
兰西多宣传网络安全
广州智能消防软件开发定制
软件开发人天行情
网络安全有什么想法