How to add border to items in a listview control using C#?

ε祈祈猫儿з 提交于 2019-12-02 09:16:23

问题


I am using a listview control where I am adding Images through ImageList

if (dtPhoto.Rows.Count > 0)
{
foreach (DataRow dr in dtPhoto.Rows)
            {
                if (dr["Photo"].ToString() != "")
                {
                    byte[] barrImg = (byte[])dr["Photo"];
                    MemoryStream mStream = new MemoryStream(barrImg);
                    imageList.Images.Add(Image.FromStream(mStream));
                }
            }
        }

        imageList.ImageSize = new Size(75, 75);
        lvItem.LargeImageList = imageList;

        for (int i = 0; i < imageList.Images.Count; i++)
        {
            lvItem.Items.Add(dtPhoto.Rows[i]["Name"].ToString() + "\n" + "(" + dtPhoto.Rows[i]["Type"].ToString() + ")", i);
        }

I want to add border to each item in the Listview Is it possible? Please Help. Thanks in advance.


回答1:


You can set OwnerDraw property of ListView to true, then handle DrawItem event and draw the border, for example:

private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
    e.DrawDefault = true;
    e.Graphics.DrawRectangle(Pens.Red, e.Bounds);
}



来源:https://stackoverflow.com/questions/32693837/how-to-add-border-to-items-in-a-listview-control-using-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!