• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#DataGridView行位置调换(上移、下移、置顶、置底)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
        /// <summary>
        /// 上移
        /// </summary>
        /// <param name="dataGridView"></param>
        public static void UpDataGridView(DataGridView dataGridView)
        {
            try
            {
                DataGridViewSelectedRowCollection dgvsrc = dataGridView.SelectedRows;//获取选中行的集合
                if (dgvsrc.Count > 0)
                {
                    int index = dataGridView.SelectedRows[0].Index;//获取当前选中行的索引
                    if (index > 0)//如果该行不是第一行
                    {
                        DataGridViewRow dgvr = dataGridView.Rows[index - dgvsrc.Count];//获取选中行的上一行
                        dataGridView.Rows.RemoveAt(index - dgvsrc.Count);//删除原选中行的上一行
                        dataGridView.Rows.Insert((index), dgvr);//将选中行的上一行插入到选中行的后面
                        for (int i = 0; i < dgvsrc.Count; i++)//选中移动后的行
                        {
                            dataGridView.Rows[index - i - 1].Selected = true;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }


        /// <summary>
        /// 下移
        /// </summary>
        /// <param name="dataGridView"></param>
        public static void DownDataGridView(DataGridView dataGridView)
        {
            try
            {
                DataGridViewSelectedRowCollection dgvsrc = dataGridView.SelectedRows;//获取选中行的集合
                if (dgvsrc.Count > 0)
                {
                    int index = dataGridView.SelectedRows[0].Index;//获取当前选中行的索引
                    if (index >= 0 & (dataGridView.RowCount - 1) != index)//如果该行不是最后一行
                    {
                        DataGridViewRow dgvr = dataGridView.Rows[index + 1];//获取选中行的下一行
                        dataGridView.Rows.RemoveAt(index + 1);//删除原选中行的上一行
                        dataGridView.Rows.Insert((index + 1 - dgvsrc.Count), dgvr);//将选中行的上一行插入到选中行的后面
                        for (int i = 0; i < dgvsrc.Count; i++)//选中移动后的行
                        {
                            dataGridView.Rows[index + 1 - i].Selected = true;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
        /// <summary>
        /// 置顶
        /// </summary>
        /// <param name="dataGridView"></param>
        public static void TopDataGridView(DataGridView dataGridView)
        {
            try
            {
                DataGridViewSelectedRowCollection dgvsrc = dataGridView.SelectedRows;//获取选中行的集合
                if (dgvsrc.Count > 0)
                {
                    int index = dataGridView.SelectedRows[0].Index;//获取当前选中行的索引
                    if (index > 0)//如果该行不是第一行
                    {
                        DataGridViewRow dgvr = dataGridView.Rows[index];//获取选中行的上一行
                        dataGridView.Rows.RemoveAt(index);//删除原选中行的上一行
                        dataGridView.Rows.Insert(0, dgvr);//将选中行的上一行插入到选中行的后面                       
                        for (int i = 0; i < dataGridView.Rows.Count; i++)//选中移动后的行
                        {
                            if (i != 0)
                            {
                                dataGridView.Rows[i].Selected = false;
                            }
                            else
                            {
                                dataGridView.Rows[i].Selected = true;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
        /// <summary>
        /// 置底
        /// </summary>
        /// <param name="dataGridView"></param>
        public static void BottomDataGridView(DataGridView dataGridView)
        {
            try
            {
                DataGridViewSelectedRowCollection dgvsrc = dataGridView.SelectedRows;//获取选中行的集合
                if (dgvsrc.Count > 0)
                {
                    int index = dataGridView.SelectedRows[0].Index;//获取当前选中行的索引
                    if (index < dataGridView.Rows.Count - 1)//如果该行不是第一行
                    {
                        DataGridViewRow dgvr = dataGridView.Rows[index];//获取选中行的上一行
                        dataGridView.Rows.RemoveAt(index);//删除原选中行的上一行
                        int nCount = dataGridView.Rows.Count;
                        dataGridView.Rows.Insert(nCount, dgvr);//将选中行的上一行插入到选中行的后面
                        for (int i = 0; i < dataGridView.Rows.Count; i++)//选中移动后的行
                        {
                            if (i != dataGridView.Rows.Count - 1)
                            {
                                dataGridView.Rows[i].Selected = false;
                            }
                            else
                            {
                                dataGridView.Rows[i].Selected = true;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap