dotnet / dotnet/winforms

Build a SplitContainer repaint sample and exploratory test matrix

Open
#14,936 0 comments 0 reactions 0 assignees View on GitHub
rendering-or-artifacts-issues
Dominant language
C#
Stars
4.9k
Forks
1.1k
Avg merge
1d 13m
Merged PRs (30d)
85

Description

## Objective

Create a sample application and exploratory test matrix for continuous `SplitContainer` repainting with panel payloads of increasing complexity.

## Sample configurations

Provide easy switching between:

1. **Light payload:** simple controls and text in both panels.
2. **Medium payload:** mixed controls, scrolling, anchoring/docking, images, and dynamic layout.
3. **Heavy payload:** realistic content with at least three nested levels of `TableLayoutPanel`, multiple child controls, mixed docking/anchoring, and enough content to expose repaint, layout, flicker, and responsiveness problems.

Exercise horizontal and vertical `SplitContainer` orientations and repeated mouse and keyboard movement.

## Exploratory environments

- Classic mode.
- `VisualStylesMode.Net11` and the latest available mode.
- Light mode and Dark Mode.
- Local interactive session.
- Terminal Services / Remote Desktop session.
- Windows on x64.
- A non-Apple Windows on ARM device.
- A genuinely slow machine such as a Surface Go 2.

Klaus owns both a suitable non-Apple ARM machine and a Surface Go 2 and can always be asked to perform or assist with this testing.

## Observations to record

- Continuous correctness of both panel contents during movement.
- Final layout correctness.
- Flicker, tearing, stale regions, blank regions, or delayed paints.
- Input responsiveness and splitter tracking.
- CPU usage, layout/paint frequency, and obvious handle or memory growth.
- Differences by visual mode, theme, orientation, hardware, and local versus remote session.

## Completion criteria

- [ ] All three payload magnitudes are available and documented.
- [ ] The heavy case includes at least three nested `TableLayoutPanel` levels.
- [ ] Both orientations and mouse/keyboard paths are exercised.
- [ ] Classic, light, Dark Mode, and Terminal Services / Remote Desktop results are recorded.
- [ ] x64, Windows on ARM, and Surface Go 2 or equivalently slow hardware results are recorded.
- [ ] Reproduction and exploratory-testing instructions are clear enough for another tester to follow.

Contributor guide

Open the contributing guide

Research direction

Begin by locating the repository's sample-app conventions and the SplitContainer and TableLayoutPanel entry points. Build and document light, medium, and heavy payloads, exercise both orientations and input paths, then record repaint, layout, responsiveness, and resource observations across the listed visual modes, sessions, hardware, and operating-system architectures.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.