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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM