Question: How can I change the expand/collapse images from the plus ( + ) and minus ( - ) images that appear when `ShowPlusMinus` and/or `ShowRootLines` are `true`.

To help visualize, I would like to make the following TreeView
[![treeview plus/minus +/-](https://i.stack.imgur.com/8SPo0.png)](https://i.stack.imgur.com/8SPo0.png)

Look like this (like Windows explorer)

[![treeview arrows](https://i.stack.imgur.com/ru2FM.png)](https://i.stack.imgur.com/ru2FM.png)

Answer: 
Expanding on [Ivan Ičin](https://stackoverflow.com/a/13626068/3504007)'s solution :

```
[DllImport("uxtheme.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
private static extern int SetWindowTheme(IntPtr hwnd, string pszSubAppName, string pszSubIdList);

public static void SetTreeViewTheme(IntPtr treeHandle) {
     SetWindowTheme(treeHandle, "explorer", null);
}

```

To use, add a `TreeView` to your form, and in `Form_Load` :

```
SetTreeViewTheme( treeView1.Handle );

```

Alternatively, you can extend the TreeView object

```
public class MyTreeView : TreeView
{

    [DllImport("uxtheme.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
    private static extern int SetWindowTheme(IntPtr hwnd, string pszSubAppName, string pszSubIdList);

    public MyTreeView() {
        SetWindowTheme(this.Handle, "explorer", null);
    }
}

```

[![before and after treeview](https://i.stack.imgur.com/gdMfy.png)](https://i.stack.imgur.com/gdMfy.png)
*Depicts what it looks like before and after calling `SetWindowTheme`*
There are 3 methods I can think of:

1. Sunny already mentioned using `SetWindowTheme(TreeView.Handle, "explorer", null)`
2. Using WPF if that is the option and adding TreeViewItem object
3. Overriding OnPaint methods, which is too complicated, considering you can do just 1, so 1 or 2 it is up to you to chose.