ModernFormsNext v1.5.0
Full Changelog: v1.4.0...v1.5.0
[1.5.0] - 2026-06-26
Compared with [1.4.0], this release focuses on WinForms compatibility, accessibility, and text rendering polish. It adds a new MaskedTextBox control, introduces a WinForms-style accessibility surface, exposes that accessibility model through the Windows MSAA backend, and fixes font-style rendering so controls honor bold, italic, and underline style information more consistently.
Published packages:
ModernFormsNextModernFormsNext.TemplatesModernFormsNext.WindowKitModernFormsNext.WindowKit.BackendModernFormsNext.WindowKit.Backend.Windows
Added
- Added
MaskedTextBox, a full ModernFormsNext control built on top of the existingTextBoxinfrastructure. - Added mask editing support backed by
System.ComponentModel.MaskedTextProvider, including typed input, paste handling, deletion, selection replacement, prompt characters, literals, password display, overwrite mode, and validation. - Added WinForms-compatible
MaskedTextBoxAPI surface for migration scenarios, including:Mask,MaskedTextProvider,MaskCompleted,MaskFullTextMaskFormat,CutCopyMaskFormat,PromptChar,PasswordChar,UseSystemPasswordCharAllowPromptAsInput,AsciiOnly,SkipLiterals,ResetOnPrompt,ResetOnSpaceInsertKeyMode,IsOverwriteMode,RejectInputOnFirstFailureCulture,FormatProvider,ValidatingType,ValidateTextMaskInputRejected,TypeValidationCompleted,MaskChanged,IsOverwriteModeChanged
- Added compatibility enums and event types used by
MaskedTextBox:MaskFormatInsertKeyModeHorizontalAlignmentMaskInputRejectedEventArgsMaskInputRejectedEventHandlerTypeValidationEventArgsTypeValidationEventHandler
- Added a
MaskedTextBoxpage to ControlGallery with common examples such as phone numbers, dates, postal codes, license-style input, password-style masked input, and rejected-input feedback. - Added a WinForms-style accessibility object model:
AccessibleObjectAccessibleEventsAccessibleNavigationAccessibleRolesAccessibleSelectionAccessibleStatesControl.ControlAccessibleObjectPlatformAccessibleObjectAdapter
- Added accessibility-related control APIs and event plumbing so controls can expose accessible names, descriptions, roles, states, default actions, navigation, selection, and help.
- Added platform accessibility contracts in
ModernFormsNext.WindowKit, includingIPlatformAccessibilityHostandIPlatformAccessibilityService. - Added a Windows MSAA bridge in the Windows backend so the ModernFormsNext accessibility model can be exposed to platform accessibility clients.
- Added WinForms-like help infrastructure:
HelpHelpEventArgsHelpEventHandlerHelpNavigatorHelpProvider
- Added internal property-store support used by the new compatibility/accessibility surface.
Changed
- Extended
TextBoxwith protected editing hooks so derived controls can reuse rendering, caret movement, selection, focus, and clipboard routing while replacing text-editing behavior. - Updated
TextBoxRendererto render the document display text, allowing derived text controls to show prompts, literals, password characters, and placeholders through the same rendering path. - Improved font-style propagation through control styles, text measurement, text layout, and renderer paths.
- Updated font dialog/gallery behavior to reflect the improved font-style model.
- Updated several controls to participate in the new accessibility surface.
- Bumped the shared package version from
1.4.0to1.5.0.
Fixed
- Fixed
TextBoxDocument.MaxLengthso assigning a new value updates the backing maximum length correctly. - Fixed text rendering paths so controls honor full font-style information more consistently.
- Fixed compatibility behavior for text display paths that need to distinguish raw text from rendered display text.
Removed
- No public APIs were removed in this release.
Compatibility Notes
MaskedTextBoxis intended to make WinForms migrations easier and intentionally includes several WinForms-compatible members that are currently compatibility stubs, such asAcceptsTab,CanUndo,Undo,ClearUndo,ScrollToCaret, andWordWrap.MaskedTextBox.BeepOnErroris preserved as API, but ModernFormsNext does not yet expose a platform-neutral system-beep service. Rejected input still raisesMaskInputRejected.- Accessibility is now represented in shared framework code and exposed through the Windows backend. Other backend implementations may need additional platform-specific work before they expose the same accessibility behavior to native accessibility clients.
- The release is backward-compatible with
1.4.0from a public API perspective. It is a minor release because it adds new public framework API.