Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ListView中返回null的HoverItem_C#_Winforms - Fatal编程技术网

C# 在ListView中返回null的HoverItem

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

在为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);
有时,HoVILL项变为空:(在我把项目放到ListVIEW的最右边区域时它变成空…如果我把它放在列表中的某个地方,那里有项目和文本,它工作得很好,如果我把它丢在某个项目没有文本的地方,那么它就变成空的……

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


问题出在哪里?或者你认为有更好的方法吗?

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


我认为将View属性设置为View.Details并将FullRowSelect设置为true,GetItemAt会在每一行的末尾加上空格,但我必须尝试确定。

是否有任何特殊原因导致您重写
OnDragDrop
,而不是添加另一个事件处理程序?是的,我正在寻找一种方法使我即使项目位于白色区域,我也不会返回该项目,而且我只需要一些看起来像列表框项目的视图(一行中的每个项目)您是否尝试了
详细信息
FullRowSelect
?有效!…我以前有详细信息…但我认为FullRowSelect成功了…谢谢