我剛剛爲CheckedListBox實現了拖放重新排序功能。現在我希望它向下滾動,如果拖到底部,反之亦然頂部(一個正常拖動自動滾動)使用DragDrop重新排序的自動滾動CheckedListBox
我已經找到了大量的WPF信息,但我沒有看到如何將這些解決方案應用到我的winform ChekedListBox。
這裏是我的代碼:
private void myListBox_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
Point point = myListBox.PointToClient(new Point(e.X, e.Y));
int index = myListBox.IndexFromPoint(point);
int selectedIndex = myListBox.SelectedIndex;
if (index < 0)
{
index = selectedIndex;
}
if (index != selectedIndex)
{
myListBox.SwapItems(selectedIndex, index);
myListBox.SelectedIndex = index;
}
}
謝謝。似乎有點hacky,但非常聰明的實現......它的工作原理! – Christoffer
雖然只有一個問題,但如果我在滾動時釋放鼠標按鈕(在列表框外),則代碼將保持啓動模式。 – Christoffer