1. 程式人生 > 其它 >DataGridView控制元件row的上下移動

DataGridView控制元件row的上下移動

 1 private void MoveUp()//上移
 2         {
 3             if (dataGridView1.SelectedRows.Count > 0)
 4             {
 5                 List<DataGridViewRow> rows_selected = new List<DataGridViewRow>();//當前選擇的行列表
 6                 foreach (DataGridViewRow row in dataGridView1.SelectedRows)
7 { 8 rows_selected.Add(row); 9 } 10 rows_selected.Sort((left, right) => 11 { 12 if (left.Index > right.Index) 13 return 1; 14 else if (left.Index == right.Index)
15 return 0; 16 else 17 return -1; 18 }); 19 List<DataGridViewRow> rows_new = new List<DataGridViewRow>(); 20 int count = dataGridView1.RowCount; 21 if (rows_selected[0
].Index != 0) 22 { 23 for (int i = 0; i < count; i++) 24 { 25 if (dataGridView1.Rows[i].Selected) 26 { 27 DataGridViewRow row = dataGridView1.Rows[i]; 28 dataGridView1.Rows.Remove(row); 29 dataGridView1.Rows.Insert(i - 1, row); 30 rows_new.Add(dataGridView1.Rows[i - 1]); 31 } 32 } 33 //更新當前選擇 34 foreach (DataGridViewCell cell in dataGridView1.SelectedCells) 35 { 36 cell.Selected = false; 37 } 38 foreach (DataGridViewRow row in rows_new) 39 { 40 row.Selected = true; 41 } 42 } 43 else 44 { 45 MessageBox.Show("到頂了"); 46 } 47 } 48 } 49 private void MoveDown()//下移 50 { 51 if (dataGridView1.SelectedRows.Count > 0) 52 { 53 List<DataGridViewRow> rows_selected = new List<DataGridViewRow>();//當前選擇的行列表 54 foreach (DataGridViewRow row in dataGridView1.SelectedRows) 55 { 56 rows_selected.Add(row); 57 } 58 rows_selected.Sort((left, right) => 59 { 60 if (left.Index > right.Index) 61 return 1; 62 else if (left.Index == right.Index) 63 return 0; 64 else 65 return -1; 66 }); 67 List<DataGridViewRow> rows_new = new List<DataGridViewRow>(); 68 int count = dataGridView1.RowCount; 69 if (rows_selected[rows_selected.Count - 1].Index != count - 1) 70 { 71 for (int i = count - 1; i > -1; i--) 72 { 73 if (dataGridView1.Rows[i].Selected) 74 { 75 DataGridViewRow row = dataGridView1.Rows[i]; 76 dataGridView1.Rows.Remove(row); 77 dataGridView1.Rows.Insert(i + 1, row); 78 rows_new.Add(dataGridView1.Rows[i + 1]); 79 } 80 } 81 //更新當前選擇 82 foreach (DataGridViewCell cell in dataGridView1.SelectedCells) 83 { 84 cell.Selected = false; 85 } 86 foreach (DataGridViewRow row in rows_new) 87 { 88 row.Selected = true; 89 } 90 } 91 else 92 { 93 MessageBox.Show("到底了"); 94 } 95 } 96 }
View Code