/// <summary>/// 上移/// </summary>/// <param name="dataGridView"></param>public static void UpDataGridView(DataGridView dataGridView){try{int count = dataGridView.SelectedRows.Count;if (count==0){return;}int index = dataGridView.SelectedRows[count - 1].Index;//DataGridView中,选中的第一条if (index <= 0)//选中开头{return;}List<DataGridViewRow> rows = new List<DataGridViewRow>();foreach (DataGridViewRow row in dataGridView.SelectedRows){rows.Add(row);}//说明:DataGridView.SelectedRows倒序排列DataGridView选中的行rows.Reverse();//反转顺序,改为正序List<int> rowIndex = new List<int>();//保存已经选中位移后的下标for (int i = 0;i< rows.Count;i++){int saveIndex = rows[i].Index;rowIndex.Add(saveIndex-1);dataGridView.Rows.RemoveAt(saveIndex);//删除dataGridView.Rows.Insert(saveIndex - 1, rows[i]);//添加到指定位置}dataGridView.ClearSelection();//清理其他选中foreach (var item in rowIndex)//重新设置选中{dataGridView.Rows[item].Selected = true;}}catch (Exception ex){MessageBox.Show(ex.ToString());}}/// <summary>/// 下移/// </summary>/// <param name="dataGridView"></param>public static void DownDataGridView(DataGridView dataGridView){try{int count = dataGridView.SelectedRows.Count;if (count == 0){return;}int index = dataGridView.SelectedRows[0].Index;//DataGridView中,选中的最后一条if (index >= dataGridView.Rows.Count-1)//选中结尾{return;}List<DataGridViewRow> rows = new List<DataGridViewRow>();foreach (DataGridViewRow row in dataGridView.SelectedRows){rows.Add(row);}List<int> rowIndex = new List<int>();//保存已经选中位移后的下标for (int i = 0; i < rows.Count; i++){int saveIndex = rows[i].Index;rowIndex.Add(saveIndex + 1);dataGridView.Rows.RemoveAt(saveIndex);//删除dataGridView.Rows.Insert(saveIndex + 1, rows[i]);//添加到指定位置}dataGridView.ClearSelection();//清理其他选中rowIndex.Reverse();//反转,为了选中顺序和默认选中顺序保存一致foreach (var item in rowIndex)//重新设置选中{dataGridView.Rows[item].Selected = true;}}catch (Exception ex){MessageBox.Show(ex.ToString());}}/// <summary>/// 删除/// </summary>/// <param name="dataGridView"></param>public static void DeleteDataGridView(DataGridView dataGridView){try{int count = dataGridView.SelectedRows.Count;if (count == 0){return;}int index = dataGridView.SelectedRows[count - 1].Index;//DataGridView中,选中的第一条if (index < 0){return;}DialogResult dr = MessageBox.Show("确定删除当前选中行?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);if (dr == DialogResult.OK){List<int> rowIndex = new List<int>();//保存的下标foreach (DataGridViewRow row in dataGridView.SelectedRows){rowIndex.Add(row.Index);}foreach (var item in rowIndex){dataGridView.Rows.RemoveAt(item);}}}catch (Exception ex){MessageBox.Show(ex.ToString());}}
