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