我在CheckedListBox上使用拖放功能,用于添加外部文件和更改项目的顺序。这两件事现在都在发挥作用。但问题是,现在你无法选中一个方框。
你检查它的那一刻 - 它被取消选中。我认为它与DragDrop事件处理程序有关。如果我在属性中打开或关闭CheckOnClick并不重要(我希望它关闭,因为您应该能够选择一个项目而不检查它)。
我希望在点击(选中后)时检查该项目,并且我希望它在框中上下移动时保持检查
以下是我使用的两个处理程序:
private void missionsBox_MouseDown(object sender, MouseEventArgs e)
{
if (missionsBox.SelectedItem == null) return;
missionsBox.DoDragDrop(missionsBox.SelectedItem, DragDropEffects.Move);
}
private void missionsBox_DragDrop(object sender, DragEventArgs e)
{
Point point = missionsBox.PointToClient(new Point(e.X, e.Y));
int index = missionsBox.IndexFromPoint(point);
object data = e.Data.GetData(typeof(string));
missionsBox.Items.Remove(data);
missionsBox.Items.Insert(index, data);
}
非常感谢这里的任何帮助。我是个菜鸟。
答案 0 :(得分:0)
private void missionsBox_DragDrop(object sender, DragEventArgs e)
{
Point point = missionsBox.PointToClient(new Point(e.X, e.Y));
int index = missionsBox.IndexFromPoint(point);
object data = e.Data.GetData(typeof(string));
missionsBox.Items.Remove(data);
missionsBox.Items.Insert(index, data);
//try this?
missionsBox.Items[index + 1].Selected = True;
}