拖拽改变DataGridView的行顺序

在Windows Forms应用程序中,若要更改DataGridView控件的行顺序,由于没有直接的属性支持,需要通过实现拖放功能来实现。本文介绍的方法包括:在DragEnter事件中设置拖放效果,在CellMouseMove事件中启动拖放操作,在DragDrop事件中处理行的插入和移除,并在RowsAdded事件中恢复选中状态。需要注意的是,这种方法适用于手动添加的数据,不适用于数据绑定的情况。
摘要由CSDN通过智能技术生成

DataGridView并没有属性可以设置改变行顺序,需要做如下操作,假设改变dataGridView2的行顺序,

定义全局变量记录最后一次选中的行号:

int selectionIdx = 0;

在DragEnter事件中添加如下代码:

private void dataGridView2_DragEnter(object sender, DragEventArgs e)

{

    e.Effect = DragDropEffects.Move;

}

在CellMouseMove事件中添加如下代码:

private void dataGridView2_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e)

{

if ((e.Clicks < 2) && (e.Button == MouseButtons.Left))

{

if ((e.ColumnIndex == -1) && (e.RowIndex > -1))

dataGridView2.DoDragDrop(dataGridView2.Rows[e.RowIndex], DragDropEffects.Move);

}

}

在DragDrop事件中添加如下代码:

private void dataGr

### 回答1: DataGridView控件提供了拖动功能,使用户可以通过鼠标拖动的位置进排序或移动。下面是关于DataGridView拖动的解释: DataGridView控件中的拖动是指用户可以通过鼠标拖动表格中的改变的位置。当用户按住鼠标左键并拖动时,DataGridView会实时响应,显示出拖动和目标之间的插入标识。 要启用DataGridView拖动功能,需要设置AllowUserToOrderRows属性为True。当该属性为True时,用户可以通过鼠标拖动改变的位置。拖动时,光标会显示为手型,表示可以拖动。 在拖动时,用户可以使用鼠标左键拖动要移动的拖动时,会在鼠标下方显示出拖动,并且会在目标之间显示插入标识。当用户放开鼠标左键时,被拖动会插入到目标的位置。 要实现拖动的处理,可以使用DataGridView的DragDrop和DragEnter事件来进操作。在DragDrop事件中,可以获取到被拖动和目标的信息,并进相应的处理。在DragEnter事件中,可以设置允许拖入的效果,例如设置e.Effect为DragDropEffects.Move来表示可以移动。 总结来说,DataGridView拖动功能可以使用户通过鼠标拖动改变的位置。通过设置AllowUserToOrderRows属性为True,并在相应的事件中处理拖动和目标的信息,可以实现拖动的效果。 ### 回答2: DataGridView 是用于显示和编辑数据的控件,如果想要实现拖动的功能,可以通过以下方法实现: 1. 首先,在 DataGridView 的属性中,将 AllowDrop 属性设置为 True,启用拖放功能。 2. 然后,可以通过 MouseDown 事件来开始拖动。在事件处理程序中,判断是否是鼠标左键按下,以及当前鼠标所在的。 3. 如果满足拖动条件,可以将的数据保存到一个临时变量中,并调用 DoDragDrop 方法开始拖动操作。可以将的数据保存为字符串,作为拖动的数据格式。 4. 在目标位置,可以通过 DragEnter 和 DragDrop 事件来接收拖动。在 DragEnter 事件中,可以检查拖动数据的格式,并设置合适的效果,例如光标效果。在 DragDrop 事件中,可以将拖动的数据转换为,并插入到指定位置。 总结一下,实现 DataGridView拖动功能,主要涉及到控件属性的设置,以及鼠标事件的处理。通过合适的事件和方法,可以实现拖动的效果。 ### 回答3: DataGridView是Windows Forms的一个控件,它用于显示和编辑数据。在DataGridView中,可以通过拖动的方式来实现数据的重新排序或移动到其他位置。具体操作如下: 1. 首先,确保DataGridView的AllowDrop属性设置为True,以允许的拖放操作。 2. 然后,给DataGridView控件的MouseDown事件和MouseMove事件添加事件处理程序。 3. 在MouseDown事件处理程序中,判断鼠标左键是否按下,如果是,则获取鼠标位置所在的,并将该的数据保存到一个变量中。 4. 在MouseMove事件处理程序中,判断鼠标左键是否按下并移动,如果是,则通过设置DoDragDrop方法来启动拖放操作。同时,通过设置光标为拖动状态来提供视觉反馈。 5. 在DataGridView的DragEnter事件处理程序中,设置拖放操作的效果,比如移动、拷贝等。 6. 在DataGridView的DragDrop事件处理程序中,获取拖放的数据,并将其插入到拖放目标位置。可以通过处理该事件来实现数据的重新排序或移动到其他位置。 需要注意的是,拖动改变顺序,并不会对数据进实际的操作。如果需要在拖放完成后对数据进相应的处理,可以在DragDrop事件处理程序中实现。 总的来说,DataGridView拖动功能能够方便地实现数据的重新排序或移动,提高了用户的使用体验。通过设置相应的事件处理程序和属性,可以灵活地控制拖动为和效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据之道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值