llenar limpiar las item datos create columnas agregar c# listview

c# - limpiar - Acolchado de filas ListView de.NET



listview items c# (2)

No parece haber una manera de cambiar el relleno (o la altura de la fila) para todas las filas en .NET ListView. ¿Alguien tiene un elegante hack-around?


Una solución alternativa es usar una ImageList que sea tan alta como desee que sean los artículos. Simplemente complete una imagen en blanco con el color de fondo. Incluso puede hacer que la imagen 1 sea ancha para no ocupar mucho espacio horizontalmente.


Sé que esta publicación es bastante antigua, sin embargo, si nunca encontraste la mejor opción, tengo una publicación de blog que puede ser de ayuda, implica el uso de LVM_SETICONSPACING.

De acuerdo con mi blog,

Inicialmente, deberás agregar:

using System.Runtime.InteropServices;

A continuación, deberá importar la DLL para poder utilizar SendMessage y modificar los parámetros de ListView.

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

Una vez que se haya completado, crea las siguientes dos funciones:

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)); }

Luego, para usar la función, simplemente pase su ListView y establezca los valores. En el ejemplo, 64 píxeles es el ancho de la imagen, y 32 píxeles es mi espacio / relleno horizontal, 100 píxeles es la altura de la imagen y 16 píxeles es mi espaciado / relleno vertical, y ambos parámetros requieren un mínimo de 4 píxeles.

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