C# 如何在DragDrop事件期间更改ListView中的焦点项目?

C# 如何在DragDrop事件期间更改ListView中的焦点项目?,c#,.net,C#,.net,我有一个带有DragDrop函数的ListView。我希望拖动的项目在拖动后保持选中状态 我有这个代码(用于DragDrop) 然后我测试了一下,看我是否可以专注于ListView中的第一项 commandListView.Items[0].Selected = true; commandListView.Items[0].Focused = true; 但它也不起作用,所选项目不会更改。它始终是旧索引,其中拖动的项位于dragdrop之前 另外,我正在使用WinForms @更新 我已经试过

我有一个带有DragDrop函数的ListView。我希望拖动的项目在拖动后保持选中状态

我有这个代码(用于DragDrop)

然后我测试了一下,看我是否可以专注于ListView中的第一项

commandListView.Items[0].Selected = true;
commandListView.Items[0].Focused = true;
但它也不起作用,所选项目不会更改。它始终是旧索引,其中拖动的项位于dragdrop之前

另外,我正在使用WinForms

@更新

我已经试过使用

commandListView.Focus();
但它不起作用


为了澄清dragdrop在同一ListView中发生的情况,我正在拖动项目以更改其顺序。

我找到了一个解决方案;我正在使用MouseDown事件启动DragDrop操作


现在我使用ItemDrag事件,一切都很好,实际上我甚至不需要聚焦项目,它是自动完成的。

旁注:
catch(Exception){}
(忽略所有抛出的异常)永远都不应该使用我不确定,但也许这可以帮助您:
commandListView.focus()你必须在焦点项后聚焦控件本身。@DmitryBychenko是的,我知道,我把它作为个人工具使用。我最不想看到的是异常哈哈。
commandListView.Items[0].Selected = true;
commandListView.Items[0].Focused = true;
commandListView.Focus();