C#如何实现Listbox自绘功能
发表于:2024-10-18 作者:千家信息网编辑
千家信息网最后更新 2024年10月18日,小编给大家分享一下C#如何实现Listbox自绘功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!使用控件的DrawMode属性来实现控件的自绘,首先将C# Listbox的Draw
千家信息网最后更新 2024年10月18日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安全错误
数据库的锁怎样保障安全
网络安全技术保障服务项目
数据库 排名
物联网环境监测系统数据库设计
部队涉网络安全的风险隐患
数码兽数据库凯撒暴龙兽
流媒体直播服务器
在哪查网贷数据库
中国特种工作证数据库
网络安全攻击名称类型工作原理
逻辑数据库设计不依赖
远程连接机房服务器安全不
大学生网络安全防范
ai算法工作服务器
爱可生云数据库
计算机网络技术排行
赛博朋克2077荒坂三郎数据库
伺服驱动软件开发工程师
南京审计大学电子支付与网络安全
acess数据库exe
niagara软件开发
以下哪些数据库是文摘型数据库
9.18网络安全宣传资料
网络安全监理标准实施
网络安全普法知识进校园推文
中国特种工作证数据库
中信银行软件开发10万
sql复制数据库出错
数据库技术成熟吗
通鼎互联网络安全有多少份额
ftp怎样上传数据库