Exemple #1
0
        private void SetSortIcon(int columnIndex, SortOrder order)
        {
            IntPtr columnHeader = NativeMethods.SendMessage(base.Handle, 4127, IntPtr.Zero, IntPtr.Zero);

            for (int columnNumber = 0; columnNumber <= base.Columns.Count - 1; columnNumber++)
            {
                IntPtr columnPtr = new IntPtr(columnNumber);
                NativeMethods.LVCOLUMN lvColumn = default(NativeMethods.LVCOLUMN);
                lvColumn.mask = 4;
                NativeMethods.SendMessage(columnHeader, 4619, columnPtr, ref lvColumn);
                if (order != SortOrder.None && columnNumber == columnIndex)
                {
                    switch (order)
                    {
                    case SortOrder.Ascending:
                        lvColumn.fmt &= -513;
                        lvColumn.fmt |= 1024;
                        break;

                    case SortOrder.Descending:
                        lvColumn.fmt &= -1025;
                        lvColumn.fmt |= 512;
                        break;
                    }
                }
                else
                {
                    lvColumn.fmt &= -1537;
                }
                NativeMethods.SendMessage(columnHeader, 4620, columnPtr, ref lvColumn);
            }
        }
Exemple #2
0
 public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, ref NativeMethods.LVCOLUMN lPLVCOLUMN);