Fix ListView destroying StateImageList when toggling CheckBoxes#14652
Open
KSaiSivani wants to merge 1 commit into
Open
Fix ListView destroying StateImageList when toggling CheckBoxes#14652KSaiSivani wants to merge 1 commit into
KSaiSivani wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #3531
Proposed changes
Update ListView.CheckBoxes setter to call RecreateHandleInternal() when toggling from true → false as well as false → true.
Ensure LVM_SETIMAGELIST is resent after handle recreation so the user‑supplied StateImageList is preserved.
Prevent native ListView from discarding or corrupting the StateImageList when checkboxes are toggled.
Customer Impact
Fixes scenarios where toggling CheckBoxes caused custom state images to disappear or the ImageList to be disposed.
Ensures developers can reliably use StateImageList with checkboxes without losing images.
Improves stability in apps that dynamically toggle CheckBoxes at runtime.
Regression?
Risk
Screenshots
Before
ListView_CheckBoxes_false_without_fix.mp4
ListView_CheckBoxes_true_without_fix.mp4
After
ListView_CheckBoxes_false_with_fix.mp4
ListView_CheckBoxes_true_with_fix.mp4
Test methodology
Manually toggled CheckBoxes across multiple views (List, SmallIcon, LargeIcon) with custom state images.
Verified items with StateImageIndex retained correct images after toggling.
Validated under high DPI scaling to confirm images remained intact.
Repeated toggle operations to confirm stability across multiple transitions.
Test environment(s)
Microsoft Reviewers: Open in CodeFlow