A major new version of the Actipro WinForms controls is now available.
Detailed Update List
Core
- Added a new Core assembly that is referenced by all Actipro assemblies and contains various fundamental classes used across our product line.
- Applications that use Actipro assembly references instead of NuGet packages must now also reference the Core assembly.
Bars
- Improved general performance by updating backend logic to use generic collections, thus reducing how often values are boxed and unboxed.
- Added a BarsMenuFactory that can be used ensure all Actipro product contextual menus are based on Bars controls.
- Updated the constructor arguments of BarCommand and BarCommandLink classes (and their derived types) to support optional arguments.
- Updated how BarComboBoxCommand selects an item in the list based on the control value by matching the full text of an item before matching what the item starts with.
- Fixed BarButtonCommand and BarSplitButtonCommand not properly deserializing the Checked property value.
Docking
- Fixed issue restoring tool window layout in some mixed DPI scenarios where a container would restore at the absolute minimum size instead of the desired size.
Navigation
- Added NavigationBar.ShowFewerBarButtons and ShowMoreBarButtons methods to simplify operations that increase or decrease the number of visible buttons.
SyntaxEditor
- Refactored the design of documents and snapshots to track the actual line terminators used in text instead of internally always normalizing line terminators to LF only.
- Updated all methods for text retrieval to return document text with the actual line terminators by default, while still allowing normalization to other line terminator kinds.
- Added properties to ITextSnapshot to return the inferred line terminator for a document snapshot's text and whether all lines uniformly use that same line terminator.
- Added the ITextDocument.NormalizeLineTerminators method to ensure all line terminators in a document are of the same kind, and new edit actions to invoke its logic.
- Added shorter-named values to the LineTerminator enumeration.
- Added the ILineIndicatorTag interface for line-based indicator tags and updated line-based indicator APIs to use that interface.
- Refactored the internal document text storage mechanism to improve performance and memory usage.
- Changed the default value of TextStylePreview.Text from 'AaBbCcXxYyZz' to 'ij = I::oO(0xB81l);'.
- Renamed several types and members to fix a misspelling of 'mergable' to the proper word 'mergeable'.
- Updated the default editor context menu and scrollbar context menu to match the editor's color scheme.
- Updated the default editor context menu to support accelerator keys within the related string resources.
- Updated regular expression search patterns to support non-capturing group syntax.
- Updated the search overlay pane to render the Find textbox with a red border when invalid regular expression syntax is detected.
- Updated the SyntaxLanguage.PlainText property to return a cached instance.
- Moved all regular expression-related types to the regex engine reimplementation in the Core assembly.
- Moved the Text assembly's DisposableObject class to the Core assembly in the ActiproSoftware namespace and made the Dispose method abstract.
- Fixed an issue that might cause an overlay pane to appear on top of the horizontal splitter box when automatic vertical scrollbars were used and the scrollbar was not currently displayed.
- Fixed the default editor context menu not properly showing commands as disabled when the associated command could not be executed.
- Refined the implementation of several core structures.
- Fixed an issue where dragging an unnormalized selection of text could show the incorrect mouse drop cursor.
.NET Languages Add-on
- Improved IntelliPrompt capabilities within top-level statements.
Shared
- Added new ControlExtensions for the Control type.
- Added new ILogicalTreeNodeExtensions for the ILogicalTreeNode type.
- Added several new methods to UIRendererManager that support generic type parameters.
- Refactored licensing infrastructure and moved types to a new ActiproSoftware.Licensing namespace.
- Refactored ILogicalTreeNode to use generic collections, which also impacts IUIElement, UIElement, UIControl, and UIContainerControl. Please see the Conversion documentation topic for details on potentially breaking changes.
- Created a new simpler licensing dialog that displays when necessary, guiding the user through next steps.
- Moved the ObservableObjectBase class to the Core assembly in the ActiproSoftware namespace and improved APIs, including adding a SetValue method.
- Moved the DoubleExtensions class to the Core assembly in the ActiproSoftware.Extensions namespace and improved APIs. The RoundMode enumeration used by the extension methods was moved to the ActiproSoftware namespace.
- Moved all types in the ActiproSoftware.Products.Logging namespace to the Core assembly in the ActiproSoftware.Logging namespace.
- Moved the WeakEventListener class to the Core assembly in the ActiproSoftware namespace.
- Renamed the DisposableObject class to MarshalByRefDisposableObject.
Wizard
- Fixed an issue where dragging controls onto a WizardPage in the .NET-based Visual Studio designer did not work.
- Fixed an issue where clicking the Next/Back buttons in the legacy .NET Framework-based Visual Studio designer navigated two pages at a time.
All
- Added official support for Visual Studio 2026.
- Added .NET assembly targets for .NET 10 and removed targets for .NET 6.
- Added nullable reference type (NRT) annotations for all libraries and samples.
- Added MenuFactory that is used by all Actipro products which can be used to customize or replace built-in contextual menus.
- Moved all assembly image and cursor resources to a root path level in each assembly.
- Renamed the ActiproSoftware.Products namespace to ActiproSoftware.Properties.
- Details for any breaking changes are in the 'Converting to v26.1' documentation topic.
About WinForms Controls
Licensing
All WinForms control licenses automatically include a free subscription for a year of free upgrades to any new versions that are released. At the end of the year, you may renew your license for another year to keep the free upgrade benefits active.
You can purchase our WinForms controls individually if you wish however you have the option to purchase all of them in the WinForms Studio bundle. Purchasing the bundle saves over purchasing all the controls individually. In addition, if you own a WinForms Studio license, you are automatically eligible to receive free licenses for any new control products added to WinForms Studio that come out within your year subscription period.
Evaluation Download
You can download an evaluation of all our WinForms controls from this page:
http://www.actiprosoftware.com/download/evaluations
Free Upgrades
If you own an older WinForms controls version and would like to upgrade to this latest version, please click the request a free upgrade link on your organization account page's 'Purchases and Licenses' tab. The link will appear there if your upgrade eligibility is active.
Actipro Software Support