Beispiel #1
0
        public override bool Equals(System.Object obj)
        {
            ColumnSortStyle o = obj as ColumnSortStyle;

            if ((object)o == null)
            {
                return(false);
            }

            if (this.Name == o.Name)
            {
                return(true);
            }
            return(false);
        }
Beispiel #2
0
        // 修改排序数组,设置第一列,把原来的列号推后
        // parameters:
        //      bToggleDirection    ==true 若nFirstColumn本来已经是当前第一列,则更换其排序方向
        public void SetFirstColumn(int nFirstColumn,
                                   ColumnSortStyle firstColumnStyle,
                                   ListView.ColumnHeaderCollection columns,
                                   bool bToggleDirection)
        {
            int    nIndex = -1;
            Column column = null;

            // 找到这个列号
            for (int i = 0; i < this.Count; i++)
            {
                column = this[i];
                if (column.No == nFirstColumn)
                {
                    nIndex = i;
                    break;
                }
            }

            // 本来已经是第一列,则更换排序方向
            if (nIndex == 0 && bToggleDirection == true)
            {
                if (column.Asc == true)
                {
                    column.Asc = false;
                }
                else
                {
                    column.Asc = true;
                }

                column.SortStyle = firstColumnStyle;    // 2008/11/30

                // 修改这一列的视觉
                ColumnHeader header = columns[column.No];

                SetHeaderText(header,
                              nIndex,
                              column);
                return;
            }

            if (nIndex != -1)
            {
                // 从数组中移走已经存在的值
                this.RemoveAt(nIndex);
            }
            else
            {
                column           = new Column();
                column.No        = nFirstColumn;
                column.Asc       = true;             // 初始时为正向排序
                column.SortStyle = firstColumnStyle; // 2007/12/20
            }

            // 放到首部
            this.Insert(0, column);

            // 修改全部列的视觉
            RefreshColumnDisplay(columns);
        }