winform listview美化

listview设置行高

listview本身是没有办法设置行高的,需要借助imagelist;

 

ImageList iList = new ImageList();
iList.ImageSize = new Size(1, 30);//宽度和高度值必须大于等于1且不超过256
listView1.SmallImageList = iList;

 

listview header添加边框、背景色

private void listView_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
    e.Graphics.FillRectangle(Brushes.LightBlue, e.Bounds);
    e.DrawText();
    using (Pen p1 = new Pen(Color.FromArgb(227, 227, 227), 1))
    {
        e.Graphics.DrawLine(p1, e.Bounds.X + e.Bounds.Width, e.Bounds.Y, e.Bounds.X + e.Bounds.Width, e.Bounds.Y + e.Bounds.Height);
        e.Graphics.DrawLine(p1, e.Bounds.X, e.Bounds.Y, e.Bounds.X + e.Bounds.Width, e.Bounds.Y);
        e.Graphics.DrawLine(p1, e.Bounds.X, e.Bounds.Y + e.Bounds.Height - 1, e.Bounds.X + e.Bounds.Width, e.Bounds.Y + e.Bounds.Height - 1);
    }
}

如果用imagelist修改了行高,listView_DrawColumnHeader也要改

private void listView_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
    Rectangle r = new Rectangle();
    r.X = e.Bounds.X + 1;
    r.Y = e.Bounds.Y;
    r.Height = e.Bounds.Height;
    r.Width = e.Bounds.Width;
    e.Graphics.FillRectangle(Brushes.WhiteSmoke, r);
    e.DrawText();
    using (Pen p1 = new Pen(Color.FromArgb(227, 227, 227), 1))
    {
        e.Graphics.DrawLine(p1, e.Bounds.X + e.Bounds.Width, e.Bounds.Y + 1, e.Bounds.X + e.Bounds.Width, e.Bounds.Y + e.Bounds.Height - 2);
        e.Graphics.DrawLine(p1, e.Bounds.X, e.Bounds.Y, e.Bounds.X + e.Bounds.Width, e.Bounds.Y);
        e.Graphics.DrawLine(p1, e.Bounds.X, e.Bounds.Y + e.Bounds.Height - 1, e.Bounds.X + e.Bounds.Width, e.Bounds.Y + e.Bounds.Height - 1);
    }
}
posted @   sherlock-merlin  阅读(1431)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示