gpt4 book ai didi

c# - ListView 中的项目没有行缩进

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:11 25 4
gpt4 key购买 nike

我目前正在开发一些软件,但客户对某个特定的 UI 更改死心塌地,这给我带来了一些麻烦:

我希望 ListView 中的项目没有任何缩进。为了说明,我更改了 ListView 和项目的背景色。

The problem]

现在,每个项目左侧的小块也应该是白色的。有什么想法吗?

最佳答案

您可以设置 OwnerDraw ListView 的属性设置为 true 并使用 DrawItemDrawColumnHeaderDrawSubItem 绘制列表看看你自己。

例如:

private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
e.Graphics.DrawString(e.Item.Text, e.Item.Font, Brushes.Black,
new Rectangle(e.Bounds.Left-2, e.Bounds.Top, e.Bounds.Width, e.Bounds.Height));
}

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

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

注意:

  • 上面的呈现只是一个示例,它向您展示了如何在所需位置绘制项目文本,例如使用 Graphics.DrawString。 .
  • 它还向您展示了如何设置 e.DrawDefault = true; 以执行默认渲染。
  • 每个 ListViewItem 对象的第一个子项代表父项本身
  • 为避免所有者绘制时图形闪烁的问题,覆盖 ListView 控件并将 DoubleBuffered 属性设置为 true。
  • 要了解更多信息,请阅读 OwnerDraw 的文档ListView 控件的属性。

关于c# - ListView 中的项目没有行缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34875335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com