zoukankan      html  css  js  c++  java
  • datagridview 上移 下移一行交换数据

    交换数据不闪烁 ,复制数据 删除选中的行插入数据会有明显的闪烁

    int rowIndex = dgv1.SelectedRows[0].Index; /*得到当前选中行的索引*/
    rowIndex = 0; /*表示当前行是第1行*/
    rowIndex = dgv1.Rows.Count - 1; /*当前行是最后一行*/
    rowIndex =rowIndex - 1; /*当前行是上一行*/
    rowIndex =rowIndex + 1; /*当前行是下一行*/

    List<object> list = new List<object>(); /*使用object List对象因为 列的数据是不确定的*/

    /*将选中行的所有单元格添加到List对象中 单元格的总数就是列的总数*/
    for (int i = 0; i < dgv1.Columns.Count; i++)
    list.Add(dgv1.SelectedRows[0].Cells[i].Value);


    dgv1.Rows[rowIndex].Cells[i].Value /*这是选中的行*/
    dgv1.Rows[rowIndex - 1].Cells[i].Value; /*......上一行*/

    list[i] /*这里放的之前选中的行数据*/

    dgv1.Rows[rowIndex].Selected = false; /*设置或取消选中的行 true|false*/

       #region datagridview 上移 下移交换数据
    
        /// <summary>
        /// 选中的项目上移一个
        /// </summary>
        /// <param name="dgv1"></param>
        public static void MoveItemUp_DataGridView(DataGridView dgv1) {
            int rowIndex = dgv1.SelectedRows[0].Index;  /*得到当前选中行的索引*/
    
            if (rowIndex == 0)
            {
                MessageBox.Show("已经是第一行了!");
                return;
            }
    
            List<object> list = new List<object>();
            for (int i = 0; i < dgv1.Columns.Count; i++)
                list.Add(dgv1.SelectedRows[0].Cells[i].Value);   
    
    
            for (int i = 0; i < dgv1.Columns.Count; i++)
            {
                dgv1.Rows[rowIndex].Cells[i].Value = dgv1.Rows[rowIndex - 1].Cells[i].Value;/*选中的行*/
                dgv1.Rows[rowIndex - 1].Cells[i].Value = list[i];  /*上一行*/
            }
            dgv1.Rows[rowIndex - 1].Selected = true;
            dgv1.Rows[rowIndex].Selected = false;
        }
    
        /// <summary>
        /// 选中的项目下移一个
        /// </summary>
        public static void MoveItemDown_DataGridView(DataGridView dgv1) {
            int rowIndex = dgv1.SelectedRows[0].Index;  
    
            if (rowIndex == dgv1.Rows.Count - 1)
            {
                MessageBox.Show("已经是最后一行了!");
                return;
            }
    
            List<object> list = new List<object>();/*把当前选中行的数据存入list数组中*/
            for (int i = 0; i < dgv1.Columns.Count; i++)
                list.Add(dgv1.SelectedRows[0].Cells[i].Value);   
    
            for (int i = 0; i < dgv1.Columns.Count; i++)
            {
                /*选中的行                              下一行  */
                dgv1.Rows[rowIndex].Cells[i].Value = dgv1.Rows[rowIndex + 1].Cells[i].Value;
                dgv1.Rows[rowIndex + 1].Cells[i].Value = list[i];
            }
            dgv1.Rows[rowIndex + 1].Selected = true;
            dgv1.Rows[rowIndex].Selected = false;
        }
    
        /// <summary>
        /// 移到最顶部
        /// </summary>
        public static void MoveItemTop_DataGridView(DataGridView dgv1) {
            int rowIndex = dgv1.SelectedRows[0].Index;
    
            if (rowIndex == 0)
            {
                MessageBox.Show("已经是第一行了!");
                return;
            }
    
            List<object> list = new List<object>();
            for (int i = 0; i < dgv1.Columns.Count; i++)
                list.Add(dgv1.SelectedRows[0].Cells[i].Value); 
    
            /*选中的行和第一行交换*/
            for (int i = 0; i < dgv1.Columns.Count; i++)
            {
                dgv1.Rows[rowIndex].Cells[i].Value = dgv1.Rows[0].Cells[i].Value; /*选中的行*/
                dgv1.Rows[0].Cells[i].Value = list[i];   /*第一行*/
            }
            dgv1.Rows[0].Selected = true;
            dgv1.Rows[rowIndex].Selected = false;
        }
    
        /// <summary>
        /// 移动到最底端
        /// </summary>
        public static void MoveItemBottom_DataGridView(DataGridView dgv1) {
            int rowIndex = dgv1.SelectedRows[0].Index;  
    
            if (rowIndex == dgv1.Rows.Count - 1)
            {
                MessageBox.Show("已经是最后一行了!");
                return;
            }
    
            List<object> list = new List<object>();
            for (int i = 0; i < dgv1.Columns.Count; i++)
                list.Add(dgv1.SelectedRows[0].Cells[i].Value); 
    
            
            for (int i = 0; i < dgv1.Columns.Count; i++)
            {
                /*选中的行                              最后一行         交换*/
                dgv1.Rows[rowIndex].Cells[i].Value = dgv1.Rows[dgv1.Rows.Count - 1].Cells[i].Value; 
                dgv1.Rows[dgv1.Rows.Count - 1].Cells[i].Value = list[i];   /*最后一行 =  选中的行*/
            }
            dgv1.Rows[dgv1.Rows.Count - 1].Selected = true;
            dgv1.Rows[rowIndex].Selected = false;
        }
    
    
    
        #endregion
  • 相关阅读:
    Pascal's Triangle II
    Pascal's Triangle
    Best Time to Buy and Sell Stock II
    Best Time to Buy and Sell Stock
    Populating Next Right Pointers in Each Node
    path sum II
    Path Sum
    [转载]小波时频图
    [转载]小波时频图
    [转载]Hilbert变换及谱分析
  • 原文地址:https://www.cnblogs.com/xe2011/p/15607079.html
Copyright © 2011-2022 走看看