C# 使用DragDrop时,如何在CheckedListBox中选中项目

C# 使用DragDrop时,如何在CheckedListBox中选中项目,c#,C#,我在CheckedListBox上使用拖放功能,用于添加外部文件和更改项目顺序。这两件事现在都在起作用。但问题是,现在你不能勾选复选框 你检查它的那一刻,它就被检查了。我认为这与DragDrop事件处理程序有关。无论我在属性中是否启用或禁用CheckOnClick,我都希望它处于禁用状态,因为您应该能够选择项目而无需选中它 我希望在选中后单击该项时选中该项,并希望在框中上下移动时保持选中状态 这里有两个我使用的处理程序: private void missionsBox_MouseDown(ob

我在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);

}

非常感谢您的帮助。我是一个noob。

谢谢,但这只是给出了一个错误:“object”不包含“Selected”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“Selected”是否缺少using指令或程序集引用?
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;

}