| A Form/UserControl builds but the Designer cannot instantiate it | Preserve the runtime constructor, add a designer-usable parameterless path, and defer dependency use until runtime load with an explicit design/null guard | Construct production services, open files, or query data from the designer path | The runtime composition root still supplies the real dependency; the design path reaches without invoking it |
| Controls/components disappear, duplicate, or fail after Designer save/reopen | Restore the generated field/collection shape and balance every / and / pair | Patch the symptom in or move serialized controls into local variables | Save, close, reopen, and inspect the regenerated diff |
| A designer-created , , image list, or similar component outlives the Form | Create the container and pass it to the component constructor | Add ad hoc disposal while leaving designer ownership inconsistent | Closing the Form disposes the container-owned component and the component remains designer-managed |
| Adding/removing list items does not refresh a bound WinForms list control | Use or the repository's adapter that raises WinForms list-change notifications | Treat as a drop-in WinForms | Mutate the list after binding and observe the control update |
| Nested content clips at DPI, font, or localization changes | Inspect , , , , , and row/column styles from the leaf through every parent; remove the actual growth cap while preserving intentional minimums; also inspect sibling controls positioned against the growing chain and keep them in responsive layout | Assume is sufficient, increase one fixed , bypass a parent container, or leave a sibling where expanded content can overlap it | Exercise resize plus the relevant DPI/font/text expansion |
| UI work is posted but completion/errors are lost | Put the operation in a -returning method that callers/tests can await; let the required event handler do only ; update controls on the captured WinForms context or await when execution can be off-context; restore control state in | Keep the whole operation inside , use , , a dead cancellation catch, or an application-wide exception hook as the normal path | Await the task-returning method through success and failure; verify the UI entry point delegates to it |
| Text must be localizable | Use the existing and ComponentResourceManager.ApplyResources
serialization pattern | Leave fallback UI text hard-coded in | Build, switch culture when possible, and perform a Designer save/reopen |
| A VB app needs startup, single-instance, or unhandled-UI hooks | Extend ; qualify Microsoft.VisualBasic.ApplicationServices
event-argument types when ambiguous; restore, activate, and bring the existing forward; log ; set explicitly | Invent , add , replace generated startup, or leave post-error continuation implicit | The configured and generated application file remain unchanged, no new entry point exists, and the final report states the exit choice |
| Review finds no actual designer defect | Leave tracked project/source files byte-for-byte unchanged and report why the suspicious construct is harmless | Clean up warnings, reformat generated code, or modernize unrelated syntax | Run the narrow available check and focused build; confirm the source diff is empty |
| The workspace contains a task-specific validator or test script | Run the narrow repository-provided check after editing and before the generic build; treat its failure as evidence that the change is incomplete | Skip the specialized check because the project compiles, or claim a Designer round trip from static validation | Report the exact validator and build commands separately, then state whether runtime UI and Designer round-trip checks were actually available |