.net ListView控件无法在虚拟模式下拖放

.net ListView控件无法在虚拟模式下拖放,.net,listview,virtualmode,.net,Listview,Virtualmode,我已经搜索过了,我找不到我问题的答案。我有一个正在移动到VirtualMode的ListView,但是当我尝试一个拖拽操作时,它失败了。它找不到正确的插入索引,因为这些项是虚拟的。在虚拟模式下,如何正确拖动ListView项 基本上,问题是无论鼠标在哪里,NearestIndex都返回-1。此代码在移动到虚拟模式之前工作 int theTargetIdx = InsertionMark->NearestIndex( thePoint ); if ( theTargetIdx > -

我已经搜索过了,我找不到我问题的答案。我有一个正在移动到VirtualMode的ListView,但是当我尝试一个拖拽操作时,它失败了。它找不到正确的插入索引,因为这些项是虚拟的。在虚拟模式下,如何正确拖动ListView项

基本上,问题是无论鼠标在哪里,NearestIndex都返回-1。此代码在移动到虚拟模式之前工作

int theTargetIdx = InsertionMark->NearestIndex( thePoint );

if ( theTargetIdx > -1 )
{
    System::Drawing::Rectangle theItemBounds = GetItemRect( theTargetIdx );
    if ( thePoint.Y > theItemBounds.Top + (theItemBounds.Height / 2) )
    {
        InsertionMark->AppearsAfterItem = true;
    }
    else
    {
        InsertionMark->AppearsAfterItem = false;
    }
}
else
{
    aArgs->Effect = System::Windows::Forms::DragDropEffects::None;  
}

InsertionMark->Index = theTargetIdx;

您需要为您所尝试的内容提供一些源代码。该点是从鼠标x和y位置的PointToClient返回的。哦,这是在所讨论的ListView控件的OnDragDrop中。