如何使用 C# 为列表视图控件中的项目添加边框?
How to add border to items in a listview control using C#?
我正在使用列表视图控件,我通过 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);
}
我想为列表视图中的每个项目添加边框,这可能吗?
请帮忙。
提前致谢。
可以将ListView的OwnerDraw
属性设置为true
,然后处理DrawItem
事件并绘制边框,例如:
private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
e.DrawDefault = true;
e.Graphics.DrawRectangle(Pens.Red, e.Bounds);
}
我正在使用列表视图控件,我通过 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);
}
我想为列表视图中的每个项目添加边框,这可能吗? 请帮忙。 提前致谢。
可以将ListView的OwnerDraw
属性设置为true
,然后处理DrawItem
事件并绘制边框,例如:
private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
e.DrawDefault = true;
e.Graphics.DrawRectangle(Pens.Red, e.Bounds);
}