public void GroupBy(ColumnHeader[] Headers) { if (this.InvokeRequired) { dGroupBy d = new dGroupBy(GroupBy); this.Invoke(d, new object[] { Headers }); } else { //code foreach (ListViewItem lvi in this.Items) { string header = ""; foreach (ColumnHeader ch in Headers) { header += " " + lvi.SubItems[ch.Index].Text; } ListViewGroup group = new ListViewGroup(header); ListViewGroup found = null; foreach (ListViewGroup g in Groups) { if (g.Header == group.Header) { found = g; break; } } if (found == null) { this.Groups.Add(group); group.Items.Add(lvi); } else { found.Items.Add(lvi); } } } }
public void GroupBy(ColumnHeader[] Headers) { if (base.InvokeRequired) { dGroupBy method = new dGroupBy(this.GroupBy); base.Invoke(method, new object[] { Headers }); } else { foreach (ListViewItem item in base.Items) { string str = ""; foreach (ColumnHeader header in Headers) { str = str + " " + item.SubItems[header.Index].Text; } ListViewGroup group = new ListViewGroup(str); ListViewGroup group2 = null; foreach (ListViewGroup group3 in base.Groups) { if (group3.Header == group.Header) { group2 = group3; break; } } if (group2 == null) { base.Groups.Add(group); group.Items.Add(item); } else { group2.Items.Add(item); } } } }
public void GroupBy(ColumnHeader[] Headers) { if (this.InvokeRequired) { dGroupBy d = new dGroupBy(GroupBy); this.Invoke(d, new object[] { Headers }); } else { if (this.VirtualMode) { // } else { #region ������ģʽ foreach (ListViewItem lvi in this.Items) { string header = ""; foreach (ColumnHeader ch in Headers) { header += " " + lvi.SubItems[ch.Index].Text; } ListViewGroup group = new ListViewGroup(header); ListViewGroup found = null; foreach (ListViewGroup g in Groups) { if (g.Header == group.Header) { found = g; break; } } if (found == null) { this.Groups.Add(group); group.Items.Add(lvi); } else { found.Items.Add(lvi); } } #endregion } } }