C# 在ListView中返回null的HoverItem
在为listview编写自定义控件的过程中:我覆盖此方法,如下所示:C# 在ListView中返回null的HoverItem,c#,winforms,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 Poin
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);
有时,HoVILL项变为空:(在我把项目放到ListVIEW的最右边区域时它变成空…如果我把它放在列表中的某个地方,那里有项目和文本,它工作得很好,如果我把它丢在某个项目没有文本的地方,那么它就变成空的……
为了更清晰,我附上了一张照片
问题出在哪里?或者你认为有更好的方法吗?没有问题。这是设计的。没有红点所在的项目。ListView具有不同的视图模式(视图属性),其中可以包含每个项目的图标/文本“块”,也可以有多列项目
我认为将View属性设置为View.Details并将FullRowSelect设置为true,GetItemAt会在每一行的末尾加上空格,但我必须尝试确定。是否有任何特殊原因导致您重写
OnDragDrop
,而不是添加另一个事件处理程序?是的,我正在寻找一种方法使我即使项目位于白色区域,我也不会返回该项目,而且我只需要一些看起来像列表框项目的视图(一行中的每个项目)您是否尝试了详细信息和FullRowSelect
?有效!…我以前有详细信息…但我认为FullRowSelect成功了…谢谢