/// <summary> /// Factory to create <see cref="Collumns"/> (All it does is assign values) /// </summary> /// <param name="column">Collumns.Name = column.pszText</param> /// <param name="pkey"></param> /// <param name="type">Collumns.pkey = pkey</param> /// <param name="isColumnHandler">Collumns.IsColumnHandler = isColumnHandler</param> /// <param name="minWidth">Collumns.MinWidth = minWidth</param> /// <returns>The new Collumns</returns> public static Collumns ToCollumns(this LVCOLUMN column, PROPERTYKEY pkey, Type type, Boolean isColumnHandler, Int32 minWidth) { return(new Collumns { pkey = pkey, Name = column.pszText, Width = minWidth, IsColumnHandler = isColumnHandler, CollumnType = type, MinWidth = minWidth }); }
protected override void OnHandleCreated(EventArgs e) { base.OnHandleCreated(e); System.Windows.Forms.ImageList il = new System.Windows.Forms.ImageList(); il.ImageSize = new System.Drawing.Size(48, 48); System.Windows.Forms.ImageList ils = new System.Windows.Forms.ImageList(); ils.ImageSize = new System.Drawing.Size(16, 16); this.IconSize = 48; ComCtl32.INITCOMMONCONTROLSEX icc = new ComCtl32.INITCOMMONCONTROLSEX(); icc.dwSize = Marshal.SizeOf(typeof(ComCtl32.INITCOMMONCONTROLSEX)); icc.dwICC = 1; var res = ComCtl32.InitCommonControlsEx(ref icc); this.LVHandle = User32.CreateWindowEx(0, "SysListView32", "", User32.WindowStyles.WS_CHILD | User32.WindowStyles.WS_CLIPCHILDREN | User32.WindowStyles.WS_CLIPSIBLINGS | (User32.WindowStyles)User32.LVS_EDITLABELS | (User32.WindowStyles)User32.LVS_OWNERDATA, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, this.Handle, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero); User32.ShowWindow(this.LVHandle, User32.ShowWindowCommands.Show); LVCOLUMN column = new LVCOLUMN(); column.mask = LVCF.LVCF_FMT | LVCF.LVCF_TEXT | LVCF.LVCF_WIDTH | LVCF.LVCF_SUBITEM; column.cx = 100; column.iSubItem = 0; column.pszText = "Name"; column.fmt = LVCFMT.LEFT; User32.SendMessage(this.LVHandle, MSG.LVM_INSERTCOLUMN, 0, ref column); LVCOLUMN column2 = new LVCOLUMN(); column2.mask = LVCF.LVCF_FMT | LVCF.LVCF_TEXT | LVCF.LVCF_WIDTH | LVCF.LVCF_SUBITEM; column2.cx = 100; column2.iSubItem = 1; column2.pszText = "Type"; column2.fmt = LVCFMT.LEFT; User32.SendMessage(this.LVHandle, MSG.LVM_INSERTCOLUMN, 1, ref column2); LVCOLUMN column3 = new LVCOLUMN(); column3.mask = LVCF.LVCF_FMT | LVCF.LVCF_TEXT | LVCF.LVCF_WIDTH | LVCF.LVCF_SUBITEM; column3.cx = 100; column3.iSubItem = 2; column3.pszText = "Size"; column3.fmt = LVCFMT.LEFT; User32.SendMessage(this.LVHandle, MSG.LVM_INSERTCOLUMN, 2, ref column3); LVCOLUMN column4 = new LVCOLUMN(); column4.mask = LVCF.LVCF_FMT | LVCF.LVCF_TEXT | LVCF.LVCF_WIDTH | LVCF.LVCF_SUBITEM; column4.cx = 100; column4.iSubItem = 3; column4.pszText = "Date Modified"; column4.fmt = LVCFMT.LEFT; User32.SendMessage(this.LVHandle, MSG.LVM_INSERTCOLUMN, 3, ref column4); User32.SendMessage(this.LVHandle, MSG.LVM_SETIMAGELIST, 0, il.Handle); User32.SendMessage(this.LVHandle, MSG.LVM_SETIMAGELIST, 1, ils.Handle); UxTheme.SetWindowTheme(this.LVHandle, "Explorer", 0); Navigate((ShellItem)KnownFolders.Desktop); User32.SendMessage(this.LVHandle, MSG.LVM_SetExtendedStyle, (int)ListViewExtendedStyles.HeaderInAllViews, (int)ListViewExtendedStyles.HeaderInAllViews); //WinAPI.SendMessage(handle, WinAPI.LVM.LVM_SetExtendedStyle, (int)WinAPI.ListViewExtendedStyles.LVS_EX_AUTOAUTOARRANGE, (int)WinAPI.ListViewExtendedStyles.LVS_EX_AUTOAUTOARRANGE); User32.SendMessage(this.LVHandle, MSG.LVM_SetExtendedStyle, (int)ListViewExtendedStyles.LVS_EX_DOUBLEBUFFER, (int)ListViewExtendedStyles.LVS_EX_DOUBLEBUFFER); }