gpt4 book ai didi

c# - .NET ListView 行填充

转载 作者:行者123 更新时间:2023-11-30 19:14:38 25 4
gpt4 key购买 nike

似乎没有办法更改 .NET ListView 中所有行的填充(或行高)。有人有优雅的 hack-around 吗?

最佳答案

我知道这篇文章已经很老了,但是,如果您从未找到最佳选择,我有一个 blog post这可能有帮助,它涉及利用 LVM_SETICONSPACING。

根据我的博客,

最初,您需要添加:

using System.Runtime.InteropServices;

接下来,您需要导入DLL,以便您可以使用SendMessage 来修改ListView 参数。

[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);

完成后,创建以下两个函数:

public int MakeLong(short lowPart, short highPart)
{
return (int)(((ushort)lowPart) | (uint)(highPart << 16));
}

public void ListViewItem_SetSpacing(ListView listview, short leftPadding, short topPadding)
{
const int LVM_FIRST = 0x1000;
const int LVM_SETICONSPACING = LVM_FIRST + 53;
SendMessage(listview.Handle, LVM_SETICONSPACING, IntPtr.Zero, (IntPtr)MakeLong(leftPadding, topPadding));
}

然后要使用该函数,只需传入您的 ListView 并设置值。在示例中,64 像素是图像宽度,32 像素是我的水平间距/填充,100 像素是图像高度,16 像素是我的垂直间距/填充,这两个参数都需要至少 4 像素。

ListViewItem_SetSpacing(this.listView1, 64 + 32, 100 + 16);

关于c# - .NET ListView 行填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57849/

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