Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除左ListView边框和列项目之间的空间_C#_Winforms_Listview_Listviewitem - Fatal编程技术网

C# 删除左ListView边框和列项目之间的空间

C# 删除左ListView边框和列项目之间的空间,c#,winforms,listview,listviewitem,C#,Winforms,Listview,Listviewitem,我将第一个ListView列中的一些项目涂成了 foreach (ListViewItem lvi in listView.Items) { lvi.UseItemStyleForSubItems = false; lvi.SubItems[0].BackColor = Color.DarkMagenta; } 并尝试消除左列表视图边框和列项目之间的轮廓间隙 设置listView.Padding无效,ColumnHeader类既没有BackColor属性,也没有可以设置为零以

我将第一个
ListView
列中的一些项目涂成了

foreach (ListViewItem lvi in listView.Items)
{
    lvi.UseItemStyleForSubItems = false;

    lvi.SubItems[0].BackColor = Color.DarkMagenta;
}
并尝试消除左
列表视图
边框和列项目之间的轮廓间隙


设置
listView.Padding
无效,
ColumnHeader
类既没有
BackColor
属性,也没有可以设置为零以下的
Margin
属性。

所有者绘图将允许您根据需要绘制整个项目背景

listView1.OwnerDraw = true;
下面是一个简单的示例:

private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
    using (Brush brush = new SolidBrush(
            (e.State.HasFlag(ListViewItemStates.Focused)) ? 
            SystemColors.Highlight : e.Item.BackColor))
        e.Graphics.FillRectangle(brush, e.Bounds);
    e.DrawText();
}
请注意,一旦您绘制了项目,您还需要绘制子项目和标题,即使您只是使用默认值:

private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
    e.DrawDefault = true;
}

private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
    e.DrawDefault = true;
}

不幸的是,没有足够的信息重现您的问题。请看一看。你可以通过选择一个合适的小图片列表来扩大差距,但我怀疑你能否摆脱它,也许ownerdraing会有所帮助。正如@TaW owner drawing所提到的,drawing是你正在寻找的。例如,你可以看看这篇文章,它似乎是重复的:我在设置左边框<0时没有看到任何差异,所以我保持了边框的原样。。