微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.NET:ListView的TopItem属性失败,并显示“ShowGroups”= true

我有一个ListView显示约300项。 当有东西被改变,我需要重新填充列表,我希望滚动位置不变,所以相同的项目仍然可见,并在列表中的相同位置。 “EnsureVisible”方法很糟糕,因为它符合“Visible”,而不是相同的位置(结果是感兴趣的项目总是滚动到列表的底部)。

我对这个问题的解决scheme是保存(我的)“ID”的List-> TopItem,重新填写列表,然后调用List-> TopItem = newItemWithSameID(需要设置两次,出于某种原因工作)。 这对于基本的“未分组”列表来说是一种魅力。

但是 – 如果列表中有“ShowGroups = true”,这是行不通的。 TopItem属性将永远是列表中的第一个项目,而不是文档中所说的第一个VISIBLE项目。

解决scheme吗? 我search了一下,发现了另一个失去灵魂的同样的问题。 他有一个相当有趣的讨论微软的支持,没有成功。(http://social.msdn.microsoft.com/Forums/en/winforms/thread/8a81c5a6-251c-4bf9-91c5-a937b5cfe9f3)。

是否有可能在VB.net中包含两个具有相同名称的DLL库?

c#如何使用新版本的助手API

C#窗体不呈现控件

我可以以编程方式对文件共享执行“净使用”吗?

exception错误对话框

所以 – 我的问题是:有没有解决方法? 我真的需要把这个列表分组,当我的列表跳转时,我真的很讨厌。

我不会在这里粘贴任何代码,因为所有需要重现的代码都在上面的讨论中。

非常感谢!

使用c#在本地注销Windows用户

如何获得任务栏的背景颜色

C#同步进程启动

VC ++ MFC在不久的将来会过时吗?

如何在一个应用程序中透明地将多个.Net版本定位到用户

以下是我用于解决此问题的解决方法

public ListViewItem RealTopItem { int i = 0; while (i < Items.Count && !ClientRectangle.Contains(Items[i].Bounds)) i++; return Items[i]; }

不幸的是,在我的代码中工作了一年之后,最近在while语句中的客户失败了。 在我的故障排除中,我首先尝试关闭组,并且问题消失了。 然后当我再次激活组时,问题再也没有发生。 我不知道现在有什么可能是错的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐