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); }
// 修改排序数组,设置第一列,把原来的列号推后 // 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); }