private void lvApp_ColumnReordered(object sender, ColumnReorderedEventArgs e) { // if locked listview if (ListViewUtil.IsLockedUpdate(lvApp)) { return; } List <int> IndexOrderList = new List <int>(); if (e.OldDisplayIndex < e.NewDisplayIndex) { for (int i = 0; i < e.OldDisplayIndex; i++) { IndexOrderList.Add(ListViewUtil.GetIndexByDisplayIndex(lvApp, i)); } for (int i = e.OldDisplayIndex + 1; i <= e.NewDisplayIndex; i++) { IndexOrderList.Add(ListViewUtil.GetIndexByDisplayIndex(lvApp, i)); } IndexOrderList.Add(e.Header.Index); for (int i = e.NewDisplayIndex + 1; i < lvApp.Columns.Count; i++) { IndexOrderList.Add(ListViewUtil.GetIndexByDisplayIndex(lvApp, i)); } } else if (e.OldDisplayIndex > e.NewDisplayIndex) { for (int i = 0; i < e.NewDisplayIndex; i++) { IndexOrderList.Add(ListViewUtil.GetIndexByDisplayIndex(lvApp, i)); } IndexOrderList.Add(e.Header.Index); for (int i = e.NewDisplayIndex; i < e.OldDisplayIndex; i++) { IndexOrderList.Add(ListViewUtil.GetIndexByDisplayIndex(lvApp, i)); } for (int i = e.OldDisplayIndex + 1; i < lvApp.Columns.Count; i++) { IndexOrderList.Add(ListViewUtil.GetIndexByDisplayIndex(lvApp, i)); } } for (int i = 0; i < IndexOrderList.Count; i++) { iniSettings.Write( lvApp.Columns[IndexOrderList[i]].Text.Replace(" ", "").Replace("∧", "").Replace("∨", ""), i.ToString(), "ColumnHeaderDisplayIndex"); } }
private void mnuCopy_Click(object sender, EventArgs e) { if (lvApp.SelectedItems.Count < 1) { return; } string EofString = lvApp.SelectedItems.Count > 1 ? "\r\n" : ""; int LoopCount = 0; string strCopyData = ""; foreach (ListViewItem lviTemp in lvApp.SelectedItems) { for (int DisplayIndex = 0; DisplayIndex < lvApp.Columns.Count; DisplayIndex++) { int RealIndex = ListViewUtil.GetIndexByDisplayIndex(lvApp, DisplayIndex); if (RealIndex < 0) { continue; } strCopyData += lviTemp.SubItems[RealIndex].Text + (DisplayIndex == lvApp.Columns.Count - 1 ? (LoopCount++ == lvApp.SelectedItems.Count - 1 ? "" : EofString) : ",\t"); } } try { Clipboard.Clear(); Clipboard.SetText(strCopyData); lblState.Text = "Completed to copy."; } catch { lblState.Text = "Failed to copy."; } }