Style von ListView ändern

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Jason.

    Style von ListView ändern

    Hallo.

    Wie kann man den Style (oder Theme) von der ListView ändern?

    Im Bild 1 seht ihr die Standard-ListView.
    Und im Bild 2, so wie ich es gerne haben würde.





    Wisst ihr wie man das ändern könnte?
    Eigenes Control erstellen, von ListView erben, WndProc überschreiben, abfragen, ob die Message.Msg-Eigenschaft den Wert 15 hat und dann über WinAPI:

    C#-Quellcode

    1. private const int LVM_FIRST = 0x1000;
    2. private const int LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54;
    3. private const int LVS_EX_DOUBLEBUFFER = 0x00010000;
    4. NativeMethods.SetWindowTheme(Handle, "explorer", null);
    5. NativeMethods.SendMessage(Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, new IntPtr(LVS_EX_DOUBLEBUFFER), new IntPtr(LVS_EX_DOUBLEBUFFER));


    C#-Quellcode

    1. [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
    2. public static extern int SetWindowTheme(IntPtr hWnd, string pszSubAppName, string pszSubIdList);
    3. [DllImport("user32.dll", CharSet = CharSet.Auto)]
    4. public static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);


    Die entsprechenden Signaturen findest Du ansonsten immer bei pinvoke.net.
    Ansonsten ginge das evtl. noch mit dem ​VisualStyleRenderer.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: