[英]Is it possible to drag and drop an item into a specific position in a listbox?
我在 Windows 窗体中有三个列表框。 第一个将保持不变。 我想将项目从第三个拖放到第二个,以便将其与第一个的特定元素相匹配。 例如,第一个列表框有 10 个元素,第二个是空的,第三个有 10 个元素。 我想将第三个列表框的第二个元素拖到第二个列表框的第五个位置(这是空的),因此它与第一个列表框的第五个元素匹配。 那讲得通? 可以做到吗? 如何? (不是要求完整代码,只是想知道是否可能,并且可能是一些关于如何做的提示)
谢谢!
好吧,我不知道这是否是最好的方法,但它确实有效。 我修改了一个代码,用于通过拖放重新排序列表框。
private void LstBox3_MouseDown(object sender, MouseEventArgs e)
{
if (lstBox3.SelectedItem == null) return;
lstBox2.DoDragDrop(lstBox3.SelectedItem, DragDropEffects.All);
}
private void LstBox2_DragDrop(object sender, DragEventArgs e)
{
Point point = lstBox2.PointToClient(new Point(e.X, e.Y));
int index = lstBox2.IndexFromPoint(point);
if (index < 0) index = lstBox2.Items.Count - 1;
object data1 = lstBox3.SelectedItem;
lstBox2.Items.RemoveAt(index);
lstBox2.Items.Insert(index, data1);
}
private void LstBox2_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.