在为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 ...如果我将它放在列表中的某处,那里有项目和文本,它可以正常工作,如果我将它放在某个项目没有文本的地方,那么它就变为空....
为了更清晰,我附上了一张图片
有什么问题?或者你认为有更好的方法可以做到这一点吗?
答案 0 :(得分:1)
没有问题。这是设计的。红点没有项目。 ListView具有不同的视图模式(视图属性),其中可以有包含每个项目的图标/文本“块”,或者可以有多列项目。
我认为将View属性设置为View.Details并将FullRowSelect设置为true,GetItemAt将在每行的空白处点击,但我必须尝试确认。