ListView设置分组后,这个问题是不是ListView的Bug呢?请大牛进!

Delta 2018-07-07 09:16:45
非常感谢您能查看我的帖子!

我做了这样一个小程序,文本框中输入内容,下面的空白处是ListView,用来数据展示结果。
比如输入“254”字符串时,显示如下内容:



同时,我也设置了键盘操作功能,就是按“↓”键时,光标就会向下移。



当移动到分组“客户信息”时,我按下回车(有相关事件处理程序,下同),应该会弹出客户的详细信息。

之前没有分组时,一切OK的。现在刚做了分组后,直接出错了,提示如下:



后来我排查了一下,是代码用的地方的问题,之前使用的是这个代码



也就是ListView.FocusedItem来定位我光标选择到的项,为什么我分组后就不行了呢?



后来修改成上面的代码,完全没有问题了。

好了,我现在来说我发现在的疑似Bug的地方吧

现在还是还原到FocusedItem的代码上来。

用键盘把光标移动到这个图片的位置上时,



现在按回车,本应该弹出详细信息窗体的,但是提示的错误是下图



我调试才发现是FocusedItem为null了。

这个时候光标还是在这个图的位置:



这个时候我再按下“↓”键时还是在原来的地方不动,这个时候,我再按回车时,错误消失了,正确弹出的窗体。

也就是说,我的光标从下往下走,到了分组“客户信息”后,也就是“李老师。。。”这一行时,
光标第一次到FocusedItem为null,再按下一次“↓”,光标还是没有动!!!还是在原地。
但这个时候,再按回车时,FocusedItem就已经有值了,程序也就正常了。

我想问的是,分组后:为什么光标会在“李老师。。”这一行按两次“↓”,光标都没有动,
第一次FocusedItem为null,第二次FocusedItem也就是null,程序就正常了,这算不算是Bug呢?

如果您想和我一起研究一下,我可以给您发源代码,供您测试。非常感谢各位参与交流讨论。
...全文
206 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Delta 2018-07-19
  • 打赏
  • 举报
回复
尝试过一些方法,这个问题还是存在的。
Delta 2018-07-09
  • 打赏
  • 举报
回复
引用 3 楼 yuankaiwsl 的回复:
用键盘切换没试过。我发现用鼠标点一下分组会自动选中此分组的第一条

是呢。好像就是分组那一个条给分配到这个线下面的第一条了,不然也不会出现按两下才会往下走,也不会出现第一次出现时FocusedItem为null,再按第二次这个FocusedItem才是确实的值了。
巴士上的邂逅 2018-07-08
  • 打赏
  • 举报
回复
用键盘切换没试过。我发现用鼠标点一下分组会自动选中此分组的第一条
Delta 2018-07-08
  • 打赏
  • 举报
回复
有人回复一下吗?有知道这个是什么原因的吗?谢谢。
Delta 2018-07-07
  • 打赏
  • 举报
回复

光标在ListView中上下移动,用的是键盘:

那么,我要是移动到最上面:洗洁精这一行,我如果按向上的箭头两次,那么,我向下,也就按两次才能下来,好像这两次,包括分组显示那一行似。

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧