Hover Item在ListView中返回null

时间:2012-05-25 18:23:02

标签: c# winforms

在为listview编写自定义控件时:我正在重写这个方法:

protected override void OnDragDrop(DragEventArgs drgevent)
{
    base.OnDragDrop(drgevent);

    // get the currently hovered row that the items will be dragged to
    Point clientPoint = base.PointToClient(new Point(drgevent.X, drgevent.Y));
    ListViewItem hoverItem = base.GetItemAt(clientPoint.X, clientPoint.Y);

有时hoverItem变为null :(当我在listview的最右边区域删除项目时它变为null ...如果我将它放在列表中的某处,那里有项目和文本,它可以正常工作,如果我将它放在某个项目没有文本的地方,那么它就变为空.... enter image description here

为了更清晰,我附上了一张图片

有什么问题?或者你认为有更好的方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

没有问题。这是设计的。红点没有项目。 ListView具有不同的视图模式(视图属性),其中可以有包含每个项目的图标/文本“块”,或者可以有多列项目。

我认为将View属性设置为View.Details并将FullRowSelect设置为true,GetItemAt将在每行的空白处点击,但我必须尝试确认。