复制代码
 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
复制代码