dotnet/winforms

Setting `ListView.CheckBoxes` after `ListView.StateImageList` destroys imagelist

Open

#3,531 创建于 2020年7月1日

在 GitHub 查看
 (2 评论) (0 反应) (0 负责人)C# (922 fork)batch import
:beetle: bug:construction: work in progressarea-controls-ListViewhelp wanted

仓库指标

Star
 (4,100 star)
PR 合并指标
 (平均合并 14天 22小时) (30 天内合并 56 个 PR)

描述

  • Have you experienced this same bug with .NET Framework?: Yes

Problem description:

An outcome of investigations in https://github.com/dotnet/winforms/issues/3358, in the following scenarios CheckBoxes is toggled whilst a user-supplied imagelist is bound to StateImageList property - the native listview control will tarnish the user-supplied one.

The issue is reproducible in net4x and netcore3.1.

listview-cb-off

listview-cb-on

Additionally, it appears changes in one instance of listview may affect another, if state imagelist were similar (e.g. contain the same set of images), as the native layer may be caching.

Expected behavior:

Changes CheckBoxes property does no affect a user-supplied imagelist.

Minimal repro:

https://github.com/RussKie/ListViewCheckboxesStateImageList

Also the issue is easily reproducible in .NET Framework designer by setting up the StateImageList property on a ListView control, (save), and then setting CheckBoxes=true.

贡献者指南