我有一个 ListView,在其中添加了一些 ListViewItem 作为项。View 属性设置为 Details。当 ListView 显示时,ListViewItem 没有任何边框(顶部和底部线将一个项与另一个项分开)。
我该怎么做才能为所有的项添加边框?
一个例子:
我该怎么做才能为所有的项添加边框?
一个例子:
![enter image description here](https://istack.dev59.com/tgamh.webp)
不知为何,CF控件不支持网格线,但其底层的本地ListView支持。这时可以使用P/Invoke解决。
private const uint LVM_FIRST = 0x1000;
private const uint LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54;
private const uint LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55;
private const uint LVS_EX_GRIDLINES = 0x00000001;
[DllImport("coredll.dll")]
private static extern uint SendMessage(IntPtr hwnd, uint msg, uint wparam, uint lparam);
public void EnableGridlines(ListView listView)
{
var style = SendMessage(
listView.Handle,
LVM_GETEXTENDEDLISTVIEWSTYLE,
0,
0);
style |= LVS_EX_GRIDLINES;
var style = SendMessage(
listView.Handle,
LVM_SETEXTENDEDLISTVIEWSTYLE,
0,
style);
}
在紧凑框架下,ListView不支持网格线。您可以使用DataGridView。