Example #1
0
 /// <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
     });
 }
Example #2
0
        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);
        }