关于在datagridview中拖动行的问题

本文介绍如何在Windows Forms的DataGridView控件中实现行拖动功能,包括单击拖动、行插入以及处理拖动过程中的细节问题,确保拖动后正确选择目标行,并更新数据源。
摘要由CSDN通过智能技术生成

因为有这样的需要,所以在网上搜索了一下解决的办法,查到如下一段代码:

 private void dataGridView_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e)
        {
            if ((e.Clicks < 2) && (e.Button==MouseButtons.Left))
            {
                if ((e.ColumnIndex ==-1) && (e.RowIndex > -1))
                    dataGridView.DoDragDrop(dataGridView.Rows[e.RowIndex], DragDropEffects.Move);
            }
        }
鼠标在单元格里移动时激活拖放功能,我这里判断了如果是只有单击才执行拖放,双击我要执行其他功能,而且只有点在每行的表头那一格拖动才行,否则会影响编辑其他单元格的值。如果希望点在任何一个单元格都可以拖动,去掉判断列序号的条件就行了。

        private void dataGridView_DragDrop(object sender, DragEventArgs e)
        {
            int idx = GetRowFromPoint(e.X, e.Y);

            if (idx < 0) return;

            if (e.Data.GetDataPresent(typeof(DataGridViewRow)))
            {
                DataG

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值